在C 中使用屬性控制項新增屬性視窗

2022-03-23 12:42:18 字數 2095 閱讀 2167

**原文 在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方法,...