簡體   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