操作說明:繼承自現有的 Windows Forms 控制項

如果您想要擴充現有控制項的功能,您可以透過繼承來建立衍生自現有控制項的控制項。 繼承自現有的控制項時,您會繼承該控制項的所有功能和視覺屬性。 例如,如果您要建立繼承自 Button 的控制項,則新控制項的外觀和動作會與標準 Button 控制項完全相同。 您就可以透過實作自訂方法和屬性,來擴充或修改新控制項的功能。 在某些控制項中,您也可以覆寫 OnPaint 其 方法來變更繼承控制項的視覺外觀。

建立繼承的控制項

  1. 在 Visual Studio 中,建立新的 Windows Forms 應用程式 專案。

  2. 從 [專案] 功能表選擇 [新增項目]

    [加入新項目] 對話方塊隨即出現。

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

    新的自訂控制項會新增至您的專案。

  4. 如果您使用:

    • Visual Basic,在方案總管頂端 ,按一下 [ 顯示所有檔案 ]。 展開 CustomControl1.vb,然後在程式碼編輯器中開啟 CustomControl1.Designer.vb。
    • C#,在程式碼編輯器中開啟 CustomControl1.cs。
  5. 找出繼承自 Control 的類別宣告。

  6. 將基底類別變更為您想要繼承的控制項。

    例如,如果您想要繼承自 Button ,請將類別宣告變更為下列專案:

    Partial Class CustomControl1
        Inherits System.Windows.Forms.Button
    
    public partial class CustomControl1 : System.Windows.Forms.Button
    
  7. 如果您使用 Visual Basic,請儲存並關閉 CustomControl1.Designer.vb。 在程式碼編輯器中開啟 CustomControl1.vb。

  8. 實作您的控制項將併入的任何自訂方法或屬性。

  9. 如果您想要修改控制項的圖形外觀,請覆寫 OnPaint 方法。

    注意

    覆寫 OnPaint 不會允許您修改所有控制項的外觀。 Windows 完成所有繪製的控制項(例如 TextBox ,) 永遠不會呼叫其 OnPaint 方法,因此永遠不會使用自訂程式碼。 請參閱您想要修改之特定控制項的說明文件,以查看方法是否 OnPaint 可用。 如需所有 Windows Forms 控制項的清單,請參閱要在 Windows Forms 上使用的控制項。 如果控制項未 OnPaint 列為成員方法,則您無法覆寫此方法來改變其外觀。 如需自訂繪製的詳細資訊,請參閱自訂控制項繪製和轉譯

    Protected Overrides Sub OnPaint(ByVal e As _
       System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(e)
       ' Insert code to do custom painting.
       ' If you want to completely change the appearance of your control,
       ' do not call MyBase.OnPaint(e).
    End Sub
    
    protected override void OnPaint(PaintEventArgs pe)
    {
       base.OnPaint(pe);
       // Insert code to do custom painting.
       // If you want to completely change the appearance of your control,
       // do not call base.OnPaint(pe).
    }
    
  10. 儲存並測試您的控制項。

另請參閱