**原文 在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
///
/// [defaultpropertyattribute("name")]
public class customer
set}
[categoryattribute("id settings"), descriptionattribute("social security number of the customer")]
public string ssn
set}
[categoryattribute("id settings"), descriptionattribute("address of the customer")]
public string address
set}
[categoryattribute("id settings"), descriptionattribute("date of birth of the customer (optional)")]
public datetime dateofbirth
set
}[categoryattribute("id settings"), descriptionattribute("age of the customer")]
public int age
set
}[categoryattribute("marketting
settings"), descriptionattribute("if the customer has bought more than
10 times, this is set to true")]
public bool frequentbuyer
set
}[categoryattribute("marketting settings"), descriptionattribute("most current e-mail of the customer")]
public string email
set
}public customer()
} 可以看到,在上面的**中,我們對customer類中的屬性進行了設定,如姓名,出生日期,位址等。
接著,我們要為建立的customer類建立乙個例項,並且將其與屬性控制項繫結。屬性控制項會自動根據類中對屬性的相關設定,從而在介面中顯示有關的屬性,並且還可以進行編輯,比如,可以對生日屬性進行修改,修改時會彈出日曆控制項框,十分方便。**如下:
private void form1_load(object sender, system.eventargs e)
最後,執行程式,我們就得到了本文一開始圖示的結果了。再來回顧下該程式,其中我們使用了catrgoryattribute屬性,定義了id
settings和marketsettings,它們在屬性控制項中以分類的形式出現(注意它們前有個「+」號,點選可以展開看到其子屬性)。同時,我們每當選擇乙個屬性時,在屬性控制項框的下部,會同時顯示該屬性的相關描述。
property屬性控制項還有很多優點,本文只是對其做了簡單介紹,希望能給讀者啟發。
C 中使用屬性
使用屬性,避免將資料成員直接暴露給外界 item always use properties instead of accessible data members.學習研究.net的早期,經常碰到一些學習c net的朋友問,要屬性這種華而不實的東西做什麼?後來做專案時也時常接到team裡的人的抱怨反...
duilib 控制項新增屬性
比如給按鈕新增乙個按下去的背景pushedbkimage,首先在setatrribute虛函式中新增乙個屬性,這樣從配置檔案讀取屬性後,即可進一步處理 void coptionui setattribute lpctstr pstrname,lpctstr pstrvalue 接著在重繪的過程中會依...
C 中使用屬性 property
在c 中也可以使用像c 中的屬性。在某些特定的環境我們可以使用這一方法,雖然在效率上會比直接訪問要來得慢。但是這點效率基本可以忽略的。大致如下 我們使用 declspec property get put 來定義某個成員的get和set方法。我們在呼叫這個成員的時候,便會自動呼叫set或get方法,...