是否可以将属性添加到类中,以便将其作为代码而不是在设计器中进行编辑?
Posted
技术标签:
【中文标题】是否可以将属性添加到类中,以便将其作为代码而不是在设计器中进行编辑?【英文标题】:Is there an attribute I can add to a class so it will be edited as code, not in the designer? 【发布时间】:2010-09-18 19:29:12 【问题描述】:我创建了一个继承自 UserControl 的类,但我只想将其用作子类的基础。有什么方法可以阻止 VS2008 尝试在设计器中对其进行编辑,而不会阻止子类在设计器中进行编辑?
【问题讨论】:
【参考方案1】:有。我相信如果您在一个文件中有多个类,VS 只会查看第一个类,但我可能弄错了。无论如何,这应该可以解决问题:
[System.ComponentModel.DesignerCategory("Code")]
public class SomeBaseClass : UserControl
//...
请注意,在 2017 之前的 Visual Studio 版本中,您必须使用属性的全名,如上所示。如果您尝试在其上方放置 using 语句并简单地尝试“DesignerCategory”视觉工作室可能不会尊重它。
【讨论】:
基类现在以代码形式打开,但派生类也可以。但是,如果您在上面添加一个具有该属性的虚拟类,它就会产生魅力! 小心,只使用[DesignerCategory("Code")]
似乎不起作用(看起来像Visual 中的一个错误)。你必须写完全限定名[System.ComponentModel.DesignerCategory("Code")]
看起来该错误已修复:[DesignerCategory("Code")]
,没有命名空间,可在 Visual Studio 2017 中使用。以上是关于是否可以将属性添加到类中,以便将其作为代码而不是在设计器中进行编辑?的主要内容,如果未能解决你的问题,请参考以下文章
在 Java 中,是不是可以在运行时使用反射将成员变量添加到类中?
我有一个Xcode静态库项目,如何添加测试目标,以便我可以在那里运行它? (而不是在链接到它的项目中。)