NET Framework 為您提供了開發和實現新控制項的能力。除了常見的使用者控制項外,現在您會發現,您可以編寫能執行自身繪圖的自訂控制項,甚至還可以通過繼承擴充現有控制項的功能。確定建立何種類型的控制項可能會費一番功夫。本節重點介紹了各類可繼承控制項間的區別,同時提供關係到為項目選擇的類型的注意事項。
1、 Component Class
Component Class可以從任何現有的 Windows 表單控制項繼承產生新的控制項。此方法使您得以保留 Windows 表單控制項所有固有功能,然後通過添加自訂屬性、方法或其他功能擴充此固有功能。例如,可以建立一個從 TextBox 繼承的控制項,該控制項只接受數字並能自動將輸入轉換為值。這樣的控制項可能包含驗證代碼,每當文字框中的文本發生更改時就會調用此代碼,另外,控制項還可能有一個附加的“值”屬性。在某些控制項中,也可以通過重寫基類的 OnPaint 方法將自訂外觀添加到控制項的圖形介面上。
處於下列情況時繼承 Windows 表單控制項:
- 大多數所需的功能已經與現有的 Windows 表單控制項相同。
- 不需要自訂圖形介面,或者想為現有控制項設計一個新的圖形前端。
2、User Control
使用者控制項是封裝在公用容器內的 Windows 表單控制項的集合。此容器包含與每個 Windows 表單控制項相關聯的所有固有功能,允許您有選擇地公開和綁定它們的屬性。使用者控制項的例子之一可能是已產生的顯示資料庫中客戶地址資料的控制項。該控制項可能包括幾個用來顯示欄位的文字框,幾個用來通過記錄定位的按鈕 (Button) 控制項。可以有選擇地公開資料繫結屬性,可以將整個控制項打包並在應用程式之間重複使用。
處於下列情況時使用 UserControl :
- 要將若干個 Windows 表單控制項的功能合成一個可重新使用的單元。
3、 Custom Control
Custom Control是通過從 Control 繼承來完全從頭地建立一個控制項。Control 類提供控制項(例如事件)所需的所有準系統,但不提供控制項特定的功能或圖形介面。與通過從使用者控制項或現有 Windows 表單控制項繼承來建立控制項相比,通過從 Control 類繼承來建立控制項需要耗費的心思和精力要多得多。因為作者必須為控制項的 OnPaint 事件編寫代碼以及所需的任何功能特定代碼,但同時也允許作者根據自己的需要,靈活地自訂調整控制項。時鐘控制項即是一個自訂控制項,它複製類比時鐘的外觀和操作,自訂繪圖將被調用來促使時鐘指標走動,以響應內部計時器組件的 Tick 事件。
處於下列情況時使用Custom Control:
- 想要提供控制項的自訂圖形化表示形式。
- 需要實現無法從標準控制項獲得的自訂功能。