共用方式為


HOW TO:繼承自現有的 Windows Form 控制項

更新:2007 年 11 月

如果您要擴充現有控制項的功能,您可以建立透過繼承而從現有控制項衍生控制項。繼承現有控制項時,您將繼承該控制項的所有功能和視覺屬性。例如,如果您建立繼承 Button 的控制項時,則新控制項的外觀和動作將和標準的 Button 控制項完全一樣。然後您可以透過自訂方法和屬性的實作,來擴充或修改新控制項的功能。在部分控制項中,您也可以覆寫其 OnPaint 方法來變更您所繼承控制項的視覺外觀。

注意事項:

根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定

若要建立繼承的控制項

  1. 建立新的 Windows 專案。

    這個專案可為任何型別,例如 [Windows 應用程式] 專案或 [Windows 控制項程式庫] 專案。如果您選擇 [Windows 控制項程式庫],您可使用提供的空白控制項並略過步驟 2 和 3。

  2. 從 [專案] 功能表中選擇 [加入使用者控制項]。

    [加入新項目] 對話方塊便會出現。

  3. 在 [加入新項目] 對話方塊中,按兩下 [自訂控制項]。

    新的自訂控制項將加入至您的專案中。

  4. 在 [程式碼編輯器] 中,尋找將 Control 指定為基底類別以便加以繼承的行。將基底類別的名稱變更為要繼承的控制項的名稱。

    例如,如果您要繼承 Button,這一行看起來會是:

    Inherits System.Windows.Forms.Button
    
    public class CustomControl1 : System.Windows.Forms.Button
    
    public class CustomControl1
       extends System.Windows.Forms.Button
    
  5. 實作您的控制項將要加入的任何自訂方法或屬性。

  6. 如果要修改控制項的圖形外觀,請覆寫 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.
    }
    
  7. 儲存和測試您的控制項。

請參閱

工作

HOW TO:繼承自 Control 類別

HOW TO:繼承自 UserControl 類別

HOW TO:撰寫 Windows Form 的控制項

Visual Basic 中的繼承事件處理常式疑難排解

概念

各種自訂控制項