新聞中心
這兩天,在用c#自定義控件,.net他提供給我們的屬性窗口非常好用,我們可以不用寫代碼就可以改變屬性,那么如果我們自定義的控件,可不可以在屬性欄里直接改變它呢?

沒錯,是可以的。.net已經(jīng)為我們想好了(他們在開發(fā)的過程中也是這么用的)。
首先舉個例子,我們要給自己定義的控件加一個字符串屬性(如果對屬性不懂的朋友,先去了解下什么是屬性)
- private string mytext
- public string Mytext
- {
- get
- {
- return this.mytext;
- }
- set
- {
- this.mytext = value;
- }
- }
這樣,我們就可以在程序中去獲取或改變Mytext屬性了,但是,我們現(xiàn)在的這個屬性,在vs開發(fā)環(huán)境中的屬性欄里看不到,為什么呢,因為我們還缺少點東西。如果我們在屬性的前面加點東西,就可以了。
就像這樣使用C#自定義控件
- private string mytext
- [Browsable(true)]//指定是否在屬性欄可見
- [DesignerSerializationVisibility(DesignerSerializationVisibility .Visible )]//指定屬性對設(shè)計時序列化程序所具有的可見性。
- public string Mytext
- {
- get
- {
- return this.mytext;
- }
- set
- {
- this.mytext = value;
- }
- }
這樣再試試,我們就發(fā)現(xiàn),在屬性欄里可以對其進行設(shè)置了。
其它還有很多這種屬性,如果有興趣,可以關(guān)注下System.ComponentModel命名空間
里面的類只要是Attribute結(jié)尾的,都是可以用到的屬性,貌似有好多,這里就不一一列舉了。
System.ComponentModel 命名空間提供用于實現(xiàn)組件和控件運行時和設(shè)計時行為的類。此命名空間包括用于實現(xiàn)屬性和類型轉(zhuǎn)換器、綁定到數(shù)據(jù)源以及授權(quán)組件的基類和接口。
該命名空間中的類分為以下類別:
核心組件類。請參見 Component、IComponent、Container 和 IContainer 類。
組件授權(quán)。請參見 License、LicenseManager、LicenseProvider 和 LicenseProviderAttribute 類。
屬性。請參見 Attribute 類。
說明符和持久性。請參見 TypeDescriptor、EventDescriptor 和 PropertyDescriptor 類。
類型轉(zhuǎn)換器。請參見 TypeConverter 類。
以上就是C#自定義控件property和attribute不同的介紹。
標題名稱:比較C#自定義控件的property(屬性)和attribute(性質(zhì))
URL分享:http://www.dlmjj.cn/article/dhsgsco.html


咨詢
建站咨詢
