HOW TO:繼承自現有的 Windows Form 控制項
如果您要擴充現有控制項的功能,您可以建立透過繼承而從現有控制項衍生控制項。繼承現有控制項時,您將繼承該控制項的所有功能和視覺屬性。例如,如果您建立繼承 Button 的控制項時,則新控制項的外觀和動作將和標準的 Button 控制項完全一樣。然後您可以透過自訂方法和屬性的實作,來擴充或修改新控制項的功能。在部分控制項中,您也可以覆寫其 OnPaint 方法來變更您所繼承控制項的視覺外觀。
注意事項 |
---|
根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定。 |
若要建立繼承的控制項
建立新的 Windows 專案。
這個專案可為任何型別,例如 [Windows 應用程式] 專案或 [Windows 控制項程式庫] 專案。如果您選擇 [Windows 控制項程式庫],您可使用提供的空白控制項並略過步驟 2 和 3。
從 [專案] 功能表中選擇 [加入使用者控制項]。
[加入新項目] 對話方塊便會出現。
在 [加入新項目] 對話方塊中,按兩下 [自訂控制項]。
新的自訂控制項將加入至您的專案中。
在 [程式碼編輯器] 中,尋找將 Control 指定為基底類別以便加以繼承的行。將基底類別的名稱變更為要繼承的控制項的名稱。
例如,如果您要繼承 Button,這一行看起來會是:
Inherits System.Windows.Forms.Button
public class CustomControl1 : System.Windows.Forms.Button
public class CustomControl1 extends System.Windows.Forms.Button
實作您的控制項將要加入的任何自訂方法或屬性。
如果要修改控制項的圖形外觀,請覆寫 OnPaint 方法。
注意事項 覆寫 OnPaint 將無法讓您修改所有控制項的外觀。如果某些控制項的繪製都是由 Windows 所完成的 (例如,TextBox),則這些控制項一定不會呼叫其 OnPaint 方法,因此也一定不會使用自訂程式碼。請參閱要修改的特定控制項的說明文件,以查看是否可以使用 OnPaint 方法。如需所有 Windows Form 控制項的清單,請參閱在 Windows Form 上使用的控制項。如果控制項沒有將 OnPaint 列為成員方法,則您無法藉由覆寫這個方法來變更其外觀。如需自訂繪製的詳細資訊,請參閱自訂控制項繪製和轉譯。
Protected Overrides Sub OnPaint(ByVal pe As _ System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(pe) ' Insert code to do custom painting. If you want to completely ' change the appearance of your control, do not call ' MyBase.OnPaint(pe). End Sub
protected override void OnPaint(PaintEventArgs pe) { // Do not call base.OnPaint if you want to completely // control the appearance of the control. base.OnPaint(pe); // Insert code to do custom painting. }
protected void OnPaint(PaintEventArgs pe) { // Do not call base.OnPaint if you want to completely // control the appearance of the control. super.OnPaint(pe); // Insert code to do custom painting. }
儲存和測試您的控制項。
請參閱
工作
HOW TO:繼承自 Control 類別
HOW TO:繼承自 UserControl 類別
HOW TO:撰寫 Windows Form 的控制項
Visual Basic 2005 中繼承事件處理常式疑難排解