我有一个带有自定义属性的用户控件:
public Size TestSize { get; set; }
我希望此属性在 UserControl 的设计时显示在属性窗口中,而不仅仅是在将 UserControl 用作实例时(例如,在表单上拖/放时)。
示例: 在用户控件的设计器中,可以设置“AllowDrop”、“AutoScroll”、“BackColor”等属性。我希望我的自定义属性在设计器中以相同的方式显示。
我已经考虑并尝试向属性添加属性,例如:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
但这似乎不是正确的方法。
如有任何帮助,我们将不胜感激!
如果你真的想在
UserControl1
的设计器中显示该属性,那么该属性应该属于其基类。那是因为设计师的工作方式
在大多数情况下,您不需要在设计器中显示这些属性,除非您想从该基础派生多个控件并在派生控件的设计时配置该属性,但我假设您知道您的要求,现在您是能够根据您的要求做出决定。
这就是设计师的工作方式:
.cs
文件(并查找InitializeComponent方法,或designer.cs文件,还考虑与设计器相关的属性)。当然,还有很多其他事情发生,例如使扩展程序提供程序正常工作,或者在设计时预过滤或后过滤属性,但总的来说,它的工作原理就像我上面解释的那样。
更多信息/相关帖子
其他一些相关答案:
我知道旧帖子,但也遇到了同样的问题。 重新编译并重新打开表单的设计器视图解决了我的问题。 使用 VS2022 和 C# 以及框架 4.5