是否有可能告诉Visual Studio不要将源文件视为"组件"?

Jør*_*ode 25 c# components visual-studio

可能重复:
是否有可以添加到类的属性,因此它将被编辑为代码,而不是在设计器中?

System.ComponentModel.Component在继承路径上的类在Visual Studio(2008)中自动被视为"组件",触发源文件的不同图标:

http://i48.tinypic.com/1z23wvn.png

虽然图标并不重要,但改变的双击行为确实很烦人:Visual Studio现在显示一个屏幕,鼓励我通过"从工具箱"拖动它们来向我的类中添加组件,而不是在文本编辑器中打开源代码. .我不想那样做!

我知道我可以右键单击源文件并选择"查看代码",但每当我忘记这样做时,我就会等待一个绝对没用的对话框.有没有办法禁用组件行为(最好是在源代码中)?

Fre*_*els 45

你不能用这个DesignerCategory属性来装饰你的班级吗?

使用如下所示的此属性装饰您的类时,双击时该文件应在"代码视图"中打开:

[System.ComponentModel.DesignerCategory("Code")]
public class MyComponent
{
}
Run Code Online (Sandbox Code Playgroud)

  • 究竟!你有**使用这个属性的完全限定名称真的很奇怪,但:) (5认同)
  • 最后在Visual Studio 2017中,您只需使用[DesignerCategory("Code")] (3认同)
  • 未来的读者会仔细留意@JørnSchou-Rode的评论.似乎情况确实只有在您使用属性的完全限定名称时才有效. (2认同)

Oli*_*ver 5

正如OregonGhost在他的评论中已经提到的,如果您从表单中创建部分类文件,也会发生这种情况。

问题更加严重。如果查看项目文件,则可以找到每个文件的条目,包括:

<Compile Include="FormMain.cs">
  <SubType>Form</SubType>
</Compile>
Run Code Online (Sandbox Code Playgroud)

因此解决方案应该是删除该行,<SubType>...</SubType>因为它似乎是所有问题的根源。但是,如果删除此行,保存文件,在Visual Studio中将其打开,再次保存并再次查看,该行将重新出现!

在Visual Studio中似乎只有一个硬编码的异常,这是* .Designer.cs。因此,没有解决此问题的解决方案。