C# 是否有一个属性可以添加到类中,以便将其作为代码进行编辑,而不是在设计器中进行编辑?

C# 是否有一个属性可以添加到类中,以便将其作为代码进行编辑,而不是在设计器中进行编辑?,c#,.net,visual-studio-2008,C#,.net,Visual Studio 2008,我创建了一个从UserControl继承的类,但我只想将其用作子类的基础。有没有一种方法可以阻止VS2008在设计器中编辑它,而不会阻止子类在设计器中编辑?有。我相信如果一个文件中有多个类,VS只会查看第一个类,但我可能弄错了。在任何情况下,这都应该做到: [System.ComponentModel.DesignerCategory("Code")] public class SomeBaseClass : UserControl { //... } 请注意,在2017年之前的Visual

我创建了一个从UserControl继承的类,但我只想将其用作子类的基础。有没有一种方法可以阻止VS2008在设计器中编辑它,而不会阻止子类在设计器中编辑?

有。我相信如果一个文件中有多个类,VS只会查看第一个类,但我可能弄错了。在任何情况下,这都应该做到:

[System.ComponentModel.DesignerCategory("Code")]
public class SomeBaseClass : UserControl
{
 //...
}

请注意,在2017年之前的Visual Studio版本中,必须使用如上所示的属性全名。如果您尝试在其上方放置using语句,而只是尝试“DesignerCategory”,VisualStudio可能不会尊重它

基类现在作为代码打开,但派生类也会这样做。但是,如果您在上面添加一个具有该属性的虚拟类,那么它将非常有用!小心,仅仅使用
[DesignerCategory(“code”)]
似乎不起作用(看起来像是视觉上的一个bug)。您必须编写完全限定的名称
[System.ComponentModel.DesignerCategory(“代码”)]
看起来错误已经修复:
[DesignerCategory(“代码”)]
,不带名称空间,在Visual Studio 2017中工作。