繁体   English   中英

如何在设计时 (C#) 隐藏一些默认控件属性?

[英]How do I hide some of the default control properties at design-time (C#)?

我有一个我制作的自定义控件。 它继承自System.Windows.Forms.Control ,并添加了几个新属性。 是否可以显示我的属性(例如 TextOn 和 TextOff)而不是默认的“文本”属性。

我的控件工作正常,我只想整理属性 window。

您可以覆盖它们(如果它们可以被覆盖)并应用Browsable属性,指定false ,或者创建属性的新版本并应用相同的属性(第二种方法似乎并不总是有效,所以 YMMV)。

此外,您可以为您的类型使用自定义TypeConverter并覆盖GetProperties方法来控制为您的类型显示哪些属性。 这种方法对底层基类的变化更加健壮,但可能需要更多的努力,具体取决于您想要实现的目标。

我经常结合使用Browsable属性和自定义TypeConverter

覆盖该属性并添加[Browsable(false)]

您可能还想添加[EditorBrowsable(EditorBrowsableState.Never)] ,这将在代码编辑器中隐藏 IntelliSense 中的属性。 请注意,它只会隐藏在与原始控件不同的解决方案中。

使用 System.ComponentModel;

[Browsable(false), DesignerSerializationVisibility(
                            DesignerSerializationVisibility.Hidden)]
public int MyHiddenProp {get; set; }

以这种方式为我工作,它不会出现在设计器属性中,并且设计器不会初始化该属性,这将覆盖我自己的初始化......

您正在寻找设计时属性,特别是BrowsableAttribute。 DefaultPropertyAttribute设置哪个属性是要编辑的默认属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM