自定義控件屬性的特性:
Bindable
指定屬性是否支援Data Binding。
這個特性表示屬性是否可以綁定一個有效數據源。通常使用布爾值進行設置。例如:Bindable(true)。如果使用值true標記屬性,表示該屬性可以綁定一個有效數據源,且應引發該屬性的屬性更改通知。
Browsable
控制屬性或事件是否顯示於屬性表。
指定屬性是否應該在屬性瀏覽器中顯示,使用布爾值設置。通常情況下,功用屬性和那些希望在屬性瀏覽器中顯示的屬性被設置爲 Browsable(true),只讀屬性和那些不希望在屬性瀏覽器中見到的屬性被設置爲 Browsable(false)。
Category
對於屬性或是事件的分類,當屬性表採分類模式顯示時,會以此Attribute作為分類的依據。
指定屬性在屬性瀏覽器中進行分組顯示的類別。該設計時特性幫助可視化編輯器將屬性進行邏輯分組。通常分爲:外觀(Appearance)、行爲(Behavior)、佈局(Layout)、數據(Data)、操作(Action)、鍵盤(Key)和鼠標(Mouse)等。除此之外,還可以自定義分組類別。
Description
對於屬性或是事件的描述,當使用者選取該屬性或事件時,其會顯示於屬性表下方。
指定顯示在屬性瀏覽器下方,屬性的文字說明。
EditorBrowsable
控制屬性或事件是否顯示於IntelliSense視窗中。Never不顯示,Always顯示, Advanced僅顯示於進階使用者模式,進階使用者模式可經由 Tools| Options | TextEditor | C# 中開啟。
DesignerSerializationVisibility
指定屬性是否以及如何在代碼中序列化,其值爲DesignerSerializationVisibility的枚舉值。存在3種設置方式:DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)指定序列化程序不應該序列化屬性值;DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)指定應該允許序列化程序序列化屬性的值;
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)指定序列化程序應該序列化屬性的內容,而不是屬性本身。此字段爲只讀。.Visible爲其默認值。
NotifyParentProperty
指示當此特性應用到的屬性的值被修改時將通知其父屬性。換言之,如果屬性的父屬性應該在該屬性值改改時接到通知,則向該屬性應用NotifyParentProperty特性。通常使用布爾值進行設置。
除了需要熟悉以上設計時特性外,還有一些常用的設計時特性,這些特性聲明於包含屬性的類之前。通常情況下,它們應用於包含子屬性的複雜屬性的類的聲明過程中,因此在聲明覆雜屬性過程中意義重大,列舉如下:
ParseChildren
使用該特性指示當在頁面上以聲明方式使用控件時,嵌套在服務器控件標記內的XML元素是應該視爲屬性還是應視爲子控件。通常情況下,包含兩種聲明方式:①ParseChildren(true)表示將子XML元素作爲服務器控件的子控件分析;②ParseChildren(bool childrenasProperty, string defaultProperty),其中childrenasProperty和方式①中的布爾值參數意義相同,defaultProperty定義默認情況下將子控件分析爲服務器控件的集合屬性。
PersistChildren
該特性指示設計時是否應將服務器控件的子控件作爲內部嵌套控件保持。如果該特性爲PersistChildren(true),則將服務器控件的子控件作爲嵌套服務器控件標記保持。如果爲PersistChildren(false),則將該控件的屬性作爲嵌套元素保持。
PersistenceMode
指定如何將服務器控件屬性或事件保持到ASP.NET頁面的元數據屬性。共存在4種枚舉設置方式:①PersistenceMode(PersistenceMode.Attribute),指定屬性或事件保持爲特性;②PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty),指定屬性作爲服務器控件的唯一內部文本而屬性值是HTML編碼的,只能對字符串作這種指定;③PersistenceMode(PersistenceMode.InnerDefaultProperty),指定屬性在服務器控件中保持爲內部文本,還指示將該屬性定義爲元素的默認屬性,只能指定一個屬性爲默認屬性;④PersistenceMode(PersistenceMode.InnerProperty),指定屬性在服務器控件中保持爲嵌套標記,這通常用於複雜對象,它們具有自己的持久性屬性。
DefaultProperty
指定服務器控件的默認屬性,例如[DefaultProperty("MyProperty")]。
DefaultEvent
指定預設的事件,當使用者於元件 / 控件上雙點滑鼠時,Editor會建立此事件函式。
ReadOnly
指定屬性是否唯讀。<true / false>
TypeConverter
指定用做此特性所綁定到的對象的轉換器的類型。用於轉換的類必須從TypeConverter繼承。使用ConverterTypeName屬性來獲取爲該特性所綁定到的對象提供數據轉換的類名。
比如 :將控件的WITFieldName屬性顯示在“CSWIT”分組中,初始值為"",描述為“控件對應數據庫中字段的名稱”
[Bindable(true),
Category("CSWIT"),
DefaultValue("")
Description("控件對應數據庫中字段的名稱。")]
public string WITFieldName
{
get
{
return strFieldName;
}
set
{
strFieldName = value;
}
}
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/ismycxp/archive/2008/10/15/3078352.aspx