Gewusst wie: Erben von vorhandenen Windows Forms-SteuerelementenHow to: Inherit from Existing Windows Forms Controls

Wenn Sie die Funktionalität eines vorhandenen Steuerelements erweitern möchten, können Sie ein Steuerelement erstellen, dass durch Vererbung von einem vorhandenen Steuerelement abgeleitet ist.If you want to extend the functionality of an existing control, you can create a control derived from an existing control through inheritance. Beim Erben von einem vorhandenen Steuerelement erben Sie die gesamte Funktionalität und die visuellen Eigenschaften dieses Steuerelements.When inheriting from an existing control, you inherit all of the functionality and visual properties of that control. Wenn Sie z. b. ein Steuerelement erstellen, das von Buttongeerbt wurde, würde das neue Steuerelement Aussehen und genauso vorgehen wie ein Standard Button Steuerelement.For example, if you were creating a control that inherited from Button, your new control would look and act exactly like a standard Button control. Sie können die Funktionalität Ihres neuen Steuerelements durch Implementieren von benutzerdefinierten Methoden und Eigenschaften erweitern oder ändern.You could then extend or modify the functionality of your new control through the implementation of custom methods and properties. In einigen Steuerelementen können Sie auch die visuelle Darstellung des geerbten Steuer Elements ändern, indem Sie dessen OnPaint-Methode überschreiben.In some controls, you can also change the visual appearance of your inherited control by overriding its OnPaint method.

So erstellen Sie ein geerbtes SteuerelementTo create an inherited control

  1. Erstellen Sie in Visual Studio ein neues Windows Forms-Anwendungs Projekt.In Visual Studio, create a new Windows Forms Application project.

  2. Wählen Sie im Menü Projekt die Option Neues Element hinzufügen aus.From the Project menu, choose Add New Item.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.The Add New Item dialog box appears.

  3. Doppelklicken Sie im Dialogfeld Neues Element hinzufügen auf Benutzerdefiniertes Steuerelement.In the Add New Item dialog box, double-click Custom Control.

    Ein neues benutzerdefiniertes Steuerelement wird zu Ihrem Projekt hinzugefügt.A new custom control is added to your project.

  4. Wenn Sie Folgendes verwenden:If you using:

    • Klicken Sie Visual Basic oben in Projektmappen-Explorerauf alle Dateien anzeigen.Visual Basic, at the top of Solution Explorer, click Show All Files. Erweitern Sie „CustomControl1.vb“ und öffnen Sie „CustomControl1.Designer.vb“ im Code-Editor.Expand CustomControl1.vb and then open CustomControl1.Designer.vb in the Code Editor.
    • C#Öffnen Sie CustomControl1.cs im Code-Editor.C#, open CustomControl1.cs in the Code Editor.
  5. Suchen Sie nach der Klassen Deklaration, die von Controlerbt.Locate the class declaration, which inherits from Control.

  6. Ändern Sie die Basisklasse in das Steuerelement, von dem Sie erben möchten.Change the base class to the control that you want to inherit from.

    Wenn Sie z. b. von Buttonerben möchten, ändern Sie die Klassen Deklaration wie folgt:For example, if you want to inherit from Button, change the class declaration to the following:

    Partial Class CustomControl1
        Inherits System.Windows.Forms.Button
    
    public partial class CustomControl1 : System.Windows.Forms.Button
    
  7. Wenn Sie Visual Basic verwenden, speichern und schließen Sie „CustomControl1.Designer.vb“.If you are using Visual Basic, save and close CustomControl1.Designer.vb. Öffnen Sie „CustomControl1.vb“ im Code-Editor.Open CustomControl1.vb in the Code Editor.

  8. Implementieren Sie alle benutzerdefinierten Methoden oder Eigenschaften, die in das Steuerelement eingebunden werden sollen.Implement any custom methods or properties that your control will incorporate.

  9. Wenn Sie die grafische Darstellung des Steuer Elements ändern möchten, überschreiben Sie die OnPaint-Methode.If you want to modify the graphical appearance of your control, override the OnPaint method.

    Hinweis

    Wenn Sie OnPaint überschreiben, können Sie die Darstellung aller Steuerelemente nicht ändern.Overriding OnPaint will not allow you to modify the appearance of all controls. Diese Steuerelemente, deren Darstellung durch Windows (z. b. TextBox) erfolgt, ruft niemals Ihre OnPaint-Methode auf und verwenden daher niemals den benutzerdefinierten Code.Those controls that have all of their painting done by Windows (for example, TextBox) never call their OnPaint method, and thus will never use the custom code. Lesen Sie die Hilfe Dokumentation für das jeweilige Steuerelement, das Sie ändern möchten, um festzustellen, ob die OnPaint-Methode verfügbar ist.Refer to the Help documentation for the particular control you want to modify to see if the OnPaint method is available. Eine Liste aller Windows Form-Steuerelemente finden Sie unter Steuerelemente für Windows Forms.For a list of all the Windows Form Controls, see Controls to Use on Windows Forms. Wenn ein Steuerelement nicht OnPaint als Element Methode aufgeführt ist, können Sie seine Darstellung nicht ändern, indem Sie diese Methode überschreiben.If a control does not have OnPaint listed as a member method, you cannot alter its appearance by overriding this method. Weitere Informationen über benutzerdefinierte Darstellung finden Sie unter Zeichnen und Ausgeben von benutzerdefinierten Steuerelementen.For more information about custom painting, see Custom Control Painting and Rendering.

    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. Speichern und testen Sie das Steuerelement.Save and test your control.

Siehe auchSee also