Benutzerdefinierte Steuerelemente (Windows Forms .NET)
Mit Windows Forms können Sie neue Steuerelemente erstellen oder vorhandene Steuerelemente durch Vererbung ändern. In diesem Artikel werden die Unterschiede zwischen den Möglichkeiten zum Erstellen neuer Steuerelemente erläutert, und Sie erhalten Informationen zum Auswählen eines bestimmten Steuerelementtyps für Ihr Projekt.
Basiskontrollklasse
Die Control Klasse ist die Basisklasse für Windows Forms-Steuerelemente. Sie stellt die Infrastruktur bereit, die für die visuelle Anzeige in Windows Forms-Anwendungen erforderlich ist, und bietet die folgenden Funktionen:
- Macht ein Fensterhandle verfügbar
- Verwaltet Meldungsrouting
- Stellt Maus- und Tastaturereignisse und viele andere Benutzeroberflächenereignisse bereit.
- Bietet erweiterte Layoutfunktionen.
- Enthält viele eigenschaften, die für die visuelle Anzeige spezifisch sind, z. B. ForeColor, BackColor, Heightund Width.
Da so viel Infrastruktur von der Basisklasse bereitgestellt wird, ist es relativ einfach, eigene Windows Forms-Steuerelemente zu entwickeln.
Erstellen eines eigenen Steuerelements
Es gibt drei Arten von benutzerdefinierten Steuerelementen, die Sie erstellen können: Benutzersteuerelemente, erweiterte Steuerelemente und benutzerdefinierte Steuerelemente. In der folgenden Tabelle können Sie entscheiden, welche Art von Steuerelement Sie erstellen sollten:
Szenario | Erstellen von |
---|---|
|
Entwerfen Sie ein Benutzersteuerelement durch Erben von System.Windows.Forms.UserControl. |
|
Erweitern eines Steuerelements durch Erben von einem bestimmten Windows Forms-Steuerelement |
|
Erstellen Sie ein benutzerdefiniertes Steuerelement durch Erben von System.Windows.Forms.Control. |
Benutzersteuerelemente
Ein Benutzersteuerelement ist eine Sammlung von Windows Forms-Steuerelementen, die dem Verbraucher als einzelnes Steuerelement angezeigt werden. Diese Art von Steuerelement wird als zusammengesetztes Steuerelement bezeichnet. Die enthaltenen Steuerelemente werden konstituierende Steuerelemente genannt.
Ein Benutzersteuerelement enthält alle inhärenten Funktionen, die jedem der enthaltenen Windows Forms-Steuerelemente zugeordnet sind, und ermöglicht es Ihnen, ihre Eigenschaften selektiv verfügbar zu machen und zu binden. Ein Benutzersteuerelement bietet auch eine Vielzahl von standardmäßigen Tastaturbehandlungsfunktionen ohne zusätzlichen Entwicklungsaufwand von Ihrer Seite.
Beispielsweise könnte ein Benutzersteuerelement erstellt werden, um Kundenadressdaten aus einer Datenbank anzuzeigen. Dieses Steuerelement würde ein DataGridView-Steuerelement beinhalten, um die Datenbankfelder anzuzeigen, BindingSource zur Verarbeitung der Bindung an eine Datenquelle und ein BindingNavigator-Steuerelement zur Navigation in den Datensätzen. Sie können Datenbindungseigenschaften selektiv verfügbar machen, und Sie können das gesamte Steuerelement von Anwendung zu Anwendung packen und wiederverwenden.
Weitere Informationen finden Sie in der Übersicht über Benutzersteuerelemente.
Erweiterte Steuerelemente
Sie können ein geerbtes Steuerelement von jedem vorhandenen Windows Forms-Steuerelement ableiten. Mit diesem Ansatz können Sie alle inhärenten Funktionen eines Windows Forms-Steuerelements beibehalten und diese Funktionalität erweitern, indem Sie benutzerdefinierte Eigenschaften, Methoden oder andere Features hinzufügen. Mit dieser Option können Sie die Farblogik des Basissteuerelements außer Kraft setzen und anschließend die Benutzeroberfläche durch Verändern des Aussehens erweitern.
Sie können z. B. ein steuerelement erstellen, das vom Button-Steuerelement abgeleitet wurde, das nachverfolgt, wie oft ein Benutzer darauf geklickt hat.
Bei einigen Steuerelementen können Sie auch eine benutzerdefinierte Darstellung der grafischen Benutzeroberfläche des Steuerelements hinzufügen, indem Sie die OnPaint-Methode der Basisklasse überschreiben. Für eine erweiterte Schaltfläche, die die Klicks nachverfolgt, können Sie die OnPaint-Methode überschreiben, um die Basisimplementierung von OnPaint aufzurufen, und dann den Klickzähler in einer Ecke des Clientbereichs des Button-Steuerelements zu zeichnen.
Benutzerdefinierte Steuerelemente
Eine weitere Möglichkeit zum Erstellen eines Steuerelements besteht darin, ein Steuerelement von Grund auf neu zu erstellen, indem es von Control erbt. Die Klasse Control stellt die gesamte grundlegende Funktionalität bereit, die für Steuerelemente erforderlich ist, darunter Maus- und Tastaturbehandlungsereignisse, sie stellt aber weder für Steuerelemente spezifische Funktionalität noch eine grafische Oberfläche bereit.
Das Erstellen eines Steuerelements durch Erben von der Control-Klasse ist mit mehr Überlegungen und Aufwand verbunden als das Erben von UserControl oder von einem vorhandenen Windows Forms-Steuerelement. Da ein Großteil der Implementierung Ihnen überlassen ist, hat Ihr Steuerelement größere Flexibilität als ein zusammengesetztes oder erweitertes Steuerelement, und Sie können Ihr Steuerelement exakt an Ihre Anforderungen anpassen.
Um ein benutzerdefiniertes Steuerelement zu implementieren, müssen Sie Code für das OnPaint Ereignis des Steuerelements schreiben, das steuert, wie das Steuerelement visuell dargestellt wird. Zudem müssen auch alle featurespezifischen Verhaltensweisen für das Steuerelement geschrieben werden. Sie können auch die WndProc Methode außer Kraft setzen und Windows-Nachrichten direkt behandeln. Dies ist die leistungsfähigste Methode zum Erstellen eines Steuerelements, aber um diese Technik effektiv zu verwenden, müssen Sie mit der Microsoft Win32-API® vertraut sein.
Ein Beispiel für ein benutzerdefiniertes Steuerelement ist ein Uhrsteuerelement, das die Darstellung und das Verhalten einer analogen Uhr dupliziert. Benutzerdefiniertes Zeichnen wird aufgerufen, um die Zeiger der Uhr als Reaktion auf Tick-Ereignisse zu bewegen, die aus einer internen Timer-Komponente stammen.
Benutzerdefinierte Gestaltungserfahrung
Wenn Sie eine benutzerdefinierte Handhabung zur Entwurfszeit implementieren müssen, können Sie Ihren eigenen Designer erstellen. Leiten Sie für zusammengesetzte Steuerelemente Ihren benutzerdefinierten Designer von der Klasse ParentControlDesigner oder DocumentDesigner ab. Für erweiterte und benutzerdefinierte Steuerelemente leiten Sie Ihre benutzerdefinierte Designerklasse von der ControlDesigner-Klasse ab.
Verwenden Sie DesignerAttribute, um Ihr Steuerelement Ihrem Designer zuzuordnen.
Die folgenden Informationen sind veraltet, können Ihnen jedoch helfen.
.NET Desktop feedback