自定義asp.net控制元件分析 (一) (轉)

gugu99發表於2007-12-05
自定義asp.net控制元件分析 (一) (轉)[@more@]

自定義分析 (一):namespace prefix = o ns = "urn:schemas--com::office" />

前些日子,自己做了幾個控制元件。想把自己對自定義控制元件的一些瞭解寫出來,請大家多多發表自己對自定義控制元件製作的心得。

讓我們能更好的動手製作自己所需功能的控制元件。

下面就以,.net自動生成的模版做一解釋。(以vb語言為例)

1.Imports System.ComponentModel

2.Imports System..UI

3.{0}:WebCustomControl1>")> Public Class WebCustomControl1

4.  Inherits System.Web.UI.WebControls.WebControl

5.  Dim _text As String

6.  Property [Text]() As String

7.   Get

8.   Return _text

9.   End Get

10.  Set(ByVal Value As String)

11.  _text = Value

12.  End Set

13.  End Property

14.  Protected Overrs Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)

15.  output.Write([Text])

16.  End Sub

17.End Class

'---------------------------------------------------------------

'1-2 匯入名稱空間,System.ComponentModel和 System.Web.UI 這沒什麼好介紹的

'3 DefaultProperty("Text")--指定屬性的預設值。如果用此屬性需要匯入(名稱空間: System.ComponentModel)

ToolboxData("{0}:WebCustomControl1>")

指定當從 等工具中的工具箱拖動自定義控制元件時為它生成的預設標記。

在下面的示例中,設定特定於 MyLabel 的若干屬性。{0} 的所有匹配項都由設計器替換為與 MyLabel 類關聯的標記字首。

{0}:MyLabel>")>

Public Class WebCustomControl1定義類名為webcustomcontrol1,以後編譯生成的dll名為webcustomtrol1

(注意:如果你修改類名。則需要修改{0}:後相對應的名字。例如:你把類名webcustomcontrol1改為webcustom。

則需要把ToolboxData("{0}:WebCustomControl1>")改成

ToolboxData("{0}:webcustom>") 否則編譯後將出錯。)

'4 Inherits 表示繼承。這裡是繼承System.Web.UI.WebControls.WebControl的方法,屬性,事件等。

'6 這句主要是控制自定義控制元件在’屬性‘中的顯示,先解釋模版的句子,再擴充套件開講

Property [Text]() As String定義 text屬性 為字串型別

Bindable(True)指定是否要繫結到該屬性。-True為是,False為不

Category("Appearance") --text屬性將顯示在外觀組中。指定類別的名稱,在該類別中將對屬性或事件進行分組。當使用了類別時,屬性和事件可以按邏輯分組顯示在屬性瀏覽器中。

DefaultValue("")為屬性設定一個簡單的預設值。這裡為空

下面列出所有的特性

詳細資料可檢視ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpcondesign-timeattributeorcomponents.htm

 

 

屬性

應用於

說明

BrowsableAttribute

屬性和事件

指定屬性或事件是否應該顯示在屬性瀏覽器中。

CategoryAttribute

屬性和事件

指定類別的名稱,在該類別中將對屬性或事件進行分組。當使用了類別時,元件屬性和事件可以按邏輯分組顯示在屬性瀏覽器中。

DescriptionAttribute

屬性和事件

定義一小塊文字,該文字將在選擇屬性或事件時顯示在屬性瀏覽器底部。

BindableAttribute

屬性

指定是否要繫結到該屬性。

DefaultPropertyAttribute

屬性

(將此特性插入類宣告前。)

指定元件的預設屬性。當使用者單擊控制元件時,將在屬性瀏覽器中選定該屬性。

DefaultValueAttribute

屬性

為屬性設定一個簡單的預設值。

EditorAttribute

屬性

指定在可視設計器中編輯(更改)屬性時要使用的編輯器。

LocalizableAttribute

屬性

指定屬性應本地化。當使用者要本地化某個窗體時,任何具有該特性的屬性都將自動永久駐留到資源中。

DesignerSerializationVisibilityAttribute

屬性

指定顯示在屬性瀏覽器中的屬性是否應該(以及如何)永久駐留在程式碼中。

TypeConverterAttribute

屬性

指定將屬性的型別轉換為另一個資料型別時要使用的型別轉換器。

DefaultEventAttribute

事件

(將此特性插入類宣告前。)

指定元件的預設事件。這是當使用者單擊元件時在屬性瀏覽器中選定的事件。

 

.net中還支援自定義特性,這裡就不說,有興趣的可以去查msdn,上面有詳細說明 

可參考ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconwritingcustomattributes.htm

7-12很簡單,意思就是返回(Get)Text屬性的值和設定(Set)Text屬性的值

13 Text屬性的結束

14-16 這個過程作用是重寫控制元件的呈現。這裡是在頁面上顯示Text屬性的值

 

這裡只是簡單介紹了一下自定義控制元件。我將在下一篇裡,用例子來具體介紹自定義控制元件中的屬性、方法、事件。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-988542/,如需轉載,請註明出處,否則將追究法律責任。

相關文章