Freigeben über


Anleitung: Erben von einem Steuerelement für Windows Forms mit C#

Mit C# können Sie leistungsstarke benutzerdefinierte Steuerelemente durch Vererbung erstellen. Durch vererbung können Sie Steuerelemente erstellen, die alle inhärenten Funktionen von Standardmäßig-Windows Forms-Steuerelementen beibehalten, aber auch benutzerdefinierte Funktionen enthalten. In diesem Leitfaden erstellen Sie ein einfaches Steuerelement mit Vererbung namens ValueButton. Diese Schaltfläche erbt Funktionen vom standardmäßigen Windows Forms-Steuerelement Button und stellt eine benutzerdefinierte Eigenschaft bereit, die genannt wird ButtonValue.

Erstellen des Projekts

Wenn Sie ein neues Projekt erstellen, geben Sie dessen Namen an, um den Stammnamespace, den Assemblynamen und den Projektnamen festzulegen und sicherzustellen, dass sich die Standardkomponente im richtigen Namespace befindet.

So erstellen Sie die ValueButtonLib-Steuerelementbibliothek und das ValueButton-Steuerelement

  1. Erstellen Sie in Visual Studio ein neues Windows Forms Control Library-Projekt , und nennen Sie es ValueButtonLib.

    Der Projektname , ValueButtonLibwird standardmäßig auch dem Stammnamespace zugewiesen. Der Stammnamespace wird verwendet, um die Namen von Komponenten in der Assembly zu qualifizieren. Wenn z. B. zwei Assemblys Komponenten namens ValueButton bereitstellen, können Sie Ihre ValueButton-Komponente mithilfe von ValueButtonLib.ValueButton spezifizieren. Weitere Informationen finden Sie unter Namespaces.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf UserControl1.cs, und wählen Sie dann im Kontextmenü Umbenennen aus. Ändern Sie den Dateinamen in ValueButton.cs. Klicken Sie auf die Schaltfläche 'Ja ', wenn Sie gefragt werden, ob Sie alle Verweise auf das CodeelementUserControl1 '' umbenennen möchten.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ValueButton.cs , und wählen Sie "Code anzeigen" aus.

  4. Suchen Sie die class Anweisungszeile, public partial class ValueButton und ändern Sie den Typ, von dem dieses Steuerelement erbt, von UserControl zu Button. Damit kann das geerbte Steuerelement alle Funktionen des Button-Steuerelements erben.

  5. Öffnen Sie im Projektmappen-Explorer den knoten ValueButton.cs , um die vom Designer generierte Codedatei ValueButton.Designer.cs anzuzeigen. Öffnen Sie diese Datei im Code-Editor.

  6. Suchen Sie die InitializeComponent Methode, und entfernen Sie die Zeile, die die AutoScaleMode Eigenschaft zuweist. Diese Eigenschaft ist im Button Steuerelement nicht vorhanden.

  7. Wählen Sie im Menü "Datei " die Option "Alle speichern " aus, um das Projekt zu speichern.

    Hinweis

    Ein visueller Designer ist nicht mehr verfügbar. Da das Button Steuerelement ein eigenes Gemälde ausführt, können Sie das Erscheinungsbild im Designer nicht ändern. Die visuelle Darstellung ist genau mit der der Klasse identisch, von der sie erbt (d. h., es sei denn, Buttonsie wird im Code geändert). Sie können der Entwurfsoberfläche weiterhin Komponenten hinzufügen, die keine UI-Elemente enthalten.

Hinzufügen einer Eigenschaft zu Ihrem geerbten Steuerelement

Eine mögliche Verwendung geerbter Windows Forms-Steuerelemente ist die Erstellung von Steuerelementen, die im Erscheinungsbild von Standardmäßigen Windows Forms-Steuerelementen identisch sind, aber benutzerdefinierte Eigenschaften verfügbar machen. In diesem Abschnitt fügen Sie dem Steuerelement eine Eigenschaft namens ButtonValue hinzu.

So fügen Sie die Eigenschaft "Value" hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ValueButton.cs, und klicken Sie dann im Kontextmenü auf " Code anzeigen ".

  2. Suchen Sie die class Anweisung. Geben Sie unmittelbar hinter dem {, den folgenden Code ein:

    // Creates the private variable that will store the value of your
    // property.
    private int varValue;
    // Declares the property.
    public int ButtonValue
    {
       // Sets the method for retrieving the value of your property.
       get
       {
          return varValue;
       }
       // Sets the method for setting the value of your property.
       set
       {
          varValue = value;
       }
    }
    

    Dieser Code legt die Methoden fest, mit denen die ButtonValue Eigenschaft gespeichert und abgerufen wird. Die get Anweisung legt den Wert fest, der an den Wert zurückgegeben wird, der in der privaten Variablen gespeichert ist, und die varValue Anweisung legt den Wert der privaten Variablen setmithilfe des value Schlüsselworts fest.

  3. Wählen Sie im Menü "Datei " die Option "Alle speichern " aus, um das Projekt zu speichern.

Testen des Steuerelements

Steuerelemente sind keine eigenständigen Projekte; sie müssen in einem Container gehostet werden. Um ihr Steuerelement zu testen, müssen Sie ein Testprojekt bereitstellen, in dem es ausgeführt werden kann. Sie müssen ihr Steuerelement auch für das Testprojekt zugänglich machen, indem Sie es erstellen (kompilieren). In diesem Abschnitt erstellen Sie Ihre Steuerung und testen sie in einem Windows-Formular.

So erstellen Sie Ihr Steuerelement

Klicken Sie im Menü Erstellen auf Lösung erstellen. Der Build sollte ohne Compilerfehler oder Warnungen erfolgreich sein.

So erstellen Sie ein Testprojekt

  1. Zeigen Sie im Menü "Datei " auf "Hinzufügen" , und klicken Sie dann auf "Neues Projekt ", um das Dialogfeld " Neues Projekt hinzufügen " zu öffnen.

  2. Wählen Sie den Windows-Knoten unter dem Visual C# -Knoten aus, und klicken Sie auf "Windows Forms-Anwendung".

  3. Geben Sie im Feld "Name " " Test" ein.

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten "Verweise " für Ihr Testprojekt, und wählen Sie dann im Kontextmenü " Verweis hinzufügen " aus, um das Dialogfeld " Verweis hinzufügen " anzuzeigen.

  5. Klicken Sie auf die Registerkarte " Projekte". Ihr ValueButtonLib-Projekt wird unter Projektname aufgeführt. Doppelklicken Sie auf das Projekt, um den Verweis auf das Testprojekt hinzuzufügen.

  6. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "Testen ", und wählen Sie "Erstellen" aus.

So fügen Sie das Steuerelement dem Formular hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Form1.cs, und wählen Sie im Kontextmenü Designer anzeigen aus.

  2. Wählen Sie in der ToolboxValueButtonLib-Komponenten aus. Doppelklicken Sie auf ValueButton.

    Im Formular wird ein ValueButton-Objekt angezeigt.

  3. Klicken Sie mit der rechten Maustaste auf das ValueButton-Steuerelement , und wählen Sie " Eigenschaften " im Kontextmenü aus.

  4. Überprüfen Sie im Eigenschaftenfenster die Eigenschaften dieses Steuerelements. Beachten Sie, dass sie mit den Eigenschaften identisch sind, die von einer Standardschaltfläche verfügbar gemacht werden, es sei denn, es gibt eine zusätzliche Eigenschaft, ButtonValue.

  5. Legen Sie die ButtonValue-Eigenschaft auf 5 fest.

  6. Doppelklicken Sie auf der Registerkarte "Alle Windows Forms " der Toolbox auf "Beschriftung" , um Ihrem Formular ein Label Steuerelement hinzuzufügen.

  7. Verschieben Sie die Beschriftung in die Mitte des Formulars.

  8. Doppelklicken Sie auf valueButton1.

    Der Code-Editor wird für das valueButton1_Click Ereignis geöffnet.

  9. Fügen Sie die folgende Codezeile ein.

    label1.Text = valueButton1.ButtonValue.ToString();
    
  10. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "Testen", und wählen Sie im Kontextmenü " Als Startprojekt festlegen " aus.

  11. Wählen Sie im Menü " Debuggen " die Option "Debuggen starten" aus.

    Form1 erscheint.

  12. Klicken Sie valueButton1.

    Die Ziffer '5' wird in label1 angezeigt, was veranschaulicht, dass die ButtonValue Eigenschaft Ihres geerbten Steuerelements durch die label1 Methode an valueButton1_Click übergeben wurde. Daher erbt Ihr ValueButton Steuerelement alle Funktionen der standardmäßigen Windows Forms-Schaltfläche, macht jedoch eine zusätzliche, benutzerdefinierte Eigenschaft verfügbar.

Siehe auch