本文介紹如何用Visual C# .NET 2002開發簡單的複合控制項(Composite Control),主要講解控制項開發過程中的屬性(Property)和事件(Event)處理,以方便開發人員在.NET平台下根據自己的需要開發適合的控制項。
當我們在.NET平台下做Windows Forms開發時,常常需要為了某一特殊用途而把現有控制項結合起來使用,比如結合了Label和TextBox的控制項就非常容易在表單上布局(記得Delphi 6裡就有這麼個控制項),而結合了特定圖案和文字的控制項則非常適合顯示公司的logo。.NET平台就為我們提供了非常棒的工具和技術來建立這樣的自訂控制項。下面讓我們來一起創作一個可以自動顯示時間的控制項。
值得注意的是,.NET平台為我們提供了三種控制項的開發技術,分別是:繼承控制項(Extended Control)、複合控制項(Composite Control)和自訂控制項(Custom Control)(譯名可能會有所不同,大家可以以英文為準)。我們現在關心的是第二種——複合控制項。OK,Let’s go!
1.建立控制項工程。
在Visual C# .NET中建立一個“Windows控制項陳列庫”項目,命名為“TimeLabel”
2.更改命名空間、控制項類名稱。
預設的命名空間是TimeLabel(和項目名稱一樣),控制項類名稱是UserControl1。請把命名空間改為與你的開發習慣一致,如我的是LeoYang.Controls.TimeLabel,當然你也可以選擇保留預設命名空間;最好把控制項類名稱改為有意義的命名,如TimeLabel,這樣當該控制項出現在工具箱上時,就會顯示為TimeLabel而不是UserControl1了。注意,一旦改動類名,則相應的Construction方法名稱也要相應改掉,如:
public UserControl1()
{
…
}
就要改為:
public TimeLabel()
{
…
}
3.添加現有控制項。
由於我們是要在現有控制項的基礎上建立新控制項,所以就應該先把可用的現有控制項添加到控制項設計介面上。請在“工具箱”中雙擊Label,再雙擊Timer,兩個現有控制項依次被添加到我們的設計介面上,如圖2: