Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
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 namensValueButtonbereitstellen, können Sie IhreValueButton-Komponente mithilfe vonValueButtonLib.ValueButtonspezifizieren. Weitere Informationen finden Sie unter Namespaces.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 Codeelement
UserControl1'' umbenennen möchten.Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ValueButton.cs , und wählen Sie "Code anzeigen" aus.
Suchen Sie die
classAnweisungszeile,public partial class ValueButtonund ändern Sie den Typ, von dem dieses Steuerelement erbt, von UserControl zu Button. Damit kann das geerbte Steuerelement alle Funktionen des Button-Steuerelements erben.Ö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.
Suchen Sie die
InitializeComponentMethode, und entfernen Sie die Zeile, die die AutoScaleMode Eigenschaft zuweist. Diese Eigenschaft ist im Button Steuerelement nicht vorhanden.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
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ValueButton.cs, und klicken Sie dann im Kontextmenü auf " Code anzeigen ".
Suchen Sie die
classAnweisung. 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
ButtonValueEigenschaft gespeichert und abgerufen wird. DiegetAnweisung legt den Wert fest, der an den Wert zurückgegeben wird, der in der privaten Variablen gespeichert ist, und dievarValueAnweisung legt den Wert der privaten Variablensetmithilfe desvalueSchlüsselworts fest.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
Zeigen Sie im Menü "Datei " auf "Hinzufügen" , und klicken Sie dann auf "Neues Projekt ", um das Dialogfeld " Neues Projekt hinzufügen " zu öffnen.
Wählen Sie den Windows-Knoten unter dem Visual C# -Knoten aus, und klicken Sie auf "Windows Forms-Anwendung".
Geben Sie im Feld "Name " " Test" ein.
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.
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.
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
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Form1.cs, und wählen Sie im Kontextmenü Designer anzeigen aus.
Wählen Sie in der ToolboxValueButtonLib-Komponenten aus. Doppelklicken Sie auf ValueButton.
Im Formular wird ein ValueButton-Objekt angezeigt.
Klicken Sie mit der rechten Maustaste auf das ValueButton-Steuerelement , und wählen Sie " Eigenschaften " im Kontextmenü aus.
Ü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.
Legen Sie die ButtonValue-Eigenschaft auf 5 fest.
Doppelklicken Sie auf der Registerkarte "Alle Windows Forms " der Toolbox auf "Beschriftung" , um Ihrem Formular ein Label Steuerelement hinzuzufügen.
Verschieben Sie die Beschriftung in die Mitte des Formulars.
Doppelklicken Sie auf
valueButton1.Der Code-Editor wird für das
valueButton1_ClickEreignis geöffnet.Fügen Sie die folgende Codezeile ein.
label1.Text = valueButton1.ButtonValue.ToString();Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "Testen", und wählen Sie im Kontextmenü " Als Startprojekt festlegen " aus.
Wählen Sie im Menü " Debuggen " die Option "Debuggen starten" aus.
Form1erscheint.Klicken Sie
valueButton1.Die Ziffer '5' wird in
label1angezeigt, was veranschaulicht, dass dieButtonValueEigenschaft Ihres geerbten Steuerelements durch dielabel1Methode anvalueButton1_Clickübergeben wurde. Daher erbt IhrValueButtonSteuerelement alle Funktionen der standardmäßigen Windows Forms-Schaltfläche, macht jedoch eine zusätzliche, benutzerdefinierte Eigenschaft verfügbar.
Siehe auch
.NET Desktop feedback