我有一个自定义控件,它继承自System.Windows.Forms.Control
,并添加了几个新属性。是否可以显示我的属性(例如TextOn和TextOff),而不是默认的“Text”属性?
我的控件运行良好,我只是想简化属性窗口。
我有一个自定义控件,它继承自System.Windows.Forms.Control
,并添加了几个新属性。是否可以显示我的属性(例如TextOn和TextOff),而不是默认的“Text”属性?
我的控件运行良好,我只是想简化属性窗口。
您可以覆盖它们(如果它们可以被覆盖),并应用Browsable
属性,指定false
,或创建属性的新版本并应用相同的属性(这种第二种方法并不总是有效,因此取决于你想实现什么)。
此外,您可以为您的类型使用自定义TypeConverter
,并覆盖GetProperties
方法来控制您的类型显示哪些属性。这种方法更加鲁棒,适用于基础类发生变化时,但根据您想要实现的内容而定,可能需要更多的努力。
我经常同时使用Browsable
属性和自定义TypeConverter
。
覆盖属性并添加[Browsable(false)]
。
您可能还想添加[EditorBrowsable(EditorBrowsableState.Never)]
,这将在代码编辑器的 IntelliSense 中隐藏该属性。请注意,它只会在与原始控件不同的解决方案中隐藏。
使用 System.ComponentModel;
[Browsable(false), DesignerSerializationVisibility(
DesignerSerializationVisibility.Hidden)]
public int MyHiddenProp {get; set; }
对我来说,它的作用是不会出现在设计师属性中,并且该属性不会被设计师初始化,这会覆盖我的自定义初始化...