轉自原文 在C#中使用屬性控件添加屬性窗口
第一步,創建在應用程序中將要展現的字段屬性為public公有屬性。其中,所有的屬性必須有get和set的方法(如果不設置get方法,則要顯示的屬性不會顯示在屬性控件中)。為了設置相關的屬性,必須設置下面的一些關於屬性控件的屬性值,如下表所示:
| 屬性值 | 含義 |
| CategoryAttribute | 該屬性對在Property控件中的屬性按字母順序進行歸類 |
| DescriptionAttribute | 其值為對每個屬性的具體文字描述,將會顯示在property控件的底部 |
| BrowsableAttribute | 該值為是否在property控件中顯示或者隱藏某個屬性 |
| ReadOnlyAttribute | 該值為某個屬性值是否在property控件中只讀 |
| DefaultValueAttribute | 每個屬性的默認值 |
接下來,我們創建一個用戶類,並且使用屬性控件,使得可以在屬性控件框中改變其值。我們先引入相關的命名空間:
| using System.ComponentModel; |
之后,創建相關的類,設置有關的屬性,代碼如下:
| /// Customer class to be displayed in the property grid /// </summary> /// [DefaultPropertyAttribute("Name")]
public string Name |
可以看到,在上面的代碼中,我們對customer類中的屬性進行了設置,如姓名,出生日期,地址等。
接着,我們要為創建的customer類創建一個實例,並且將其與屬性控件綁定。屬性控件會自動根據類中對屬性的相關設置,從而在界面中顯示有關的屬性,並且還可以進行編輯,比如,可以對生日屬性進行修改,修改時會彈出日歷控件框,十分方便。代碼如下:
| private void Form1_Load(object sender, System.EventArgs e) { //創建bill對象,實例化CUSTOMER類 Customer bill = new Customer(); //賦值給屬性 bill.Age = 50; bill.Address = " 114 Maple Drive "; bill.DateOfBirth = Convert.ToDateTime(" 9/14/78"); bill.SSN = "123-345-3566"; bill.Email = “bill@aol.com” bill.Name = "Bill Smith"; //將對象綁定到property控件中 propertyGrid1.SelectedObject = bill; } |
最后,運行程序,我們就得到了本文一開始圖示的結果了。再來回顧下該程序,其中我們使用了CatrgoryAttribute屬性,定義了id settings和MarketSettings,它們在屬性控件中以分類的形式出現(注意它們前有個“+”號,點擊可以展開看到其子屬性)。同時,我們每當選擇一個屬性時,在屬性控件框的下部,會同時顯示該屬性的相關描述。
Property屬性控件還有很多優點,本文只是對其做了簡單介紹,希望能給讀者啟發。
