[英]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.