操作說明:繼承自現有的 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. 儲存並測試您的控制項。

另請參閱