Arten von benutzerdefinierten Steuerelementen

.NET Framework bietet Ihnen die Möglichkeit, neue Steuerelemente zu entwickeln und zu implementieren. Sie können die Funktionalität des vertrauten Benutzersteuerelements sowie von vorhandenen Steuerelementen durch Vererbung erweitern. Sie können auch benutzerdefinierte Steuerelemente schreiben, die ihre eigene Grafikausgabe ausführen.

Es kann verwirrend sein, eine Entscheidung zu treffen, welche Art von Steuerelement erstellt werden soll. Dieses Thema behandelt die Unterschiede zwischen verschiedenen Arten von Steuerelementen, von denen geerbt werden kann, und bietet Informationen über die Auswahl einer bestimmten Art von Steuerelement für Ihr Projekt.

Hinweis

Informationen zum Erstellen eines Steuerelements, das in Web Forms verwendet werden soll, finden Sie unter Entwickeln von benutzerdefinierten ASP.NET-Serversteuerelementen.

Control-Basisklasse

Die Control-Klasse ist die Basisklasse für Windows Forms-Steuerelemente. Sie bietet die Infrastruktur, die für die grafische Darstellung in Windows Forms-Anwendungen benötigt wird.

Die Control-Klasse führt die folgenden Aufgaben aus, um die visuelle Darstellung in Windows Forms-Anwendungen zu ermöglichen:

  • Macht ein Fensterhandle verfügbar.

  • Verwaltet Meldungsrouting.

  • Bietet Maus- und Tastaturereignisse und viele weitere Ereignisse der Benutzeroberfläche.

  • Bietet erweiterte Layoutfunktionen.

  • Die Klasse enthält viele für die grafische Darstellung spezifischen Eigenschaften wie ForeColor, BackColor, Height und Width.

  • Bietet die notwendige Unterstützung für Sicherheit und Threading für ein Windows Forms-Steuerelement, um als Microsoft® ActiveX®-Steuerelement zu fungieren.

Da der Großteil der Infrastruktur von der Basisklasse bereitgestellt wird, ist es relativ einfach, Ihre eigenen Windows Forms-Steuerelemente zu entwickeln.

Arten von Steuerelementen

Windows Forms unterstützt drei Arten von benutzerdefinierten Steuerelementen: zusammengesetzt, erweitert und benutzerdefiniert. In den folgenden Abschnitten werden die Arten von Steuerelementen beschrieben und Empfehlungen für die Auswahl gegeben, welche Art Sie in Ihren Projekten verwenden sollten.

Zusammengesetzte Steuerelemente

Ein zusammengesetztes Steuerelement ist eine Sammlung von Windows Forms-Steuerelementen, die in einem gemeinsamen Container gekapselt sind. Diese Art von Steuerelement wird manchmal auch als Benutzersteuerelement bezeichnet. Die enthaltenen Steuerelemente werden konstituierende Steuerelemente genannt.

Ein zusammengesetztes Steuerelement enthält die gesamte Funktionalität, die in jedem der enthaltenen Windows Forms-Steuerelemente implementiert ist, und ermöglicht es Ihnen, deren Eigenschaften selektiv verfügbar zu machen und zu binden. Ein zusammengesetztes Steuerelement bietet auch hohe Funktionalität für die standardmäßige Tastaturbehandlung, sodass Sie keinen zusätzlichen Entwicklungsaufwand betreiben müssen.

Ein zusammengesetztes Steuerelement kann z.B. erstellt werden, um die Adressdaten von Kunden aus einer Datenbank anzuzeigen. Dieses Steuerelement könnte ein DataGridView-Steuerelement enthalten, um die Datenbankfelder anzuzeigen, eine BindingSource-Klasse 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 das gesamte Steuerelement verpacken und von Anwendung zu Anwendung wiederverwenden. Ein Beispiel dieser Art von Benutzersteuerelement finden Sie unter Vorgehensweise: Anwenden von Attributen auf Windows Forms-Steuerelemente.

Leiten Sie von der Klasse UserControl ab, um ein zusammengesetztes Steuerelement zu erstellen. Die Basisklasse UserControl ermöglicht Tastaturrouting für die untergeordneten Steuerelemente und stellt damit sicher, dass untergeordnete Steuerelemente als Gruppe arbeiten können. Weitere Informationen finden Sie unter Entwickeln eines zusammengesetzten Windows Forms-Steuerelements.

Empfehlung

Verwenden Sie Vererbung von der UserControl-Klasse, wenn Folgendes zutrifft:

  • Sie möchten die Funktionalität mehrerer Windows Forms-Steuerelemente in einer einzigen wiederverwendbaren Einheit kombinieren.

Erweiterte Steuerelemente

Sie können ein geerbtes Steuerelement aus jedem vorhandenen Windows Forms-Steuerelement ableiten. Diese Vorgehensweise ermöglicht es Ihnen, die in einem Windows Forms-Steuerelement implementierte Funktionalität zu übernehmen und diese Funktionalität dann durch Hinzufügen von benutzerdefinierten Eigenschaften, Methoden oder weiteren Funktionen zu erweitern. 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 von Button abgeleitetes Steuerelement erstellen, 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 zeichnen.

Empfehlung

Verwenden Sie Vererbung von einem Windows Forms-Steuerelement, wenn Folgendes zutrifft:

  • Ein Großteil der Funktionalität, die Sie benötigen, mit ist der Funktionalität eines vorhandenen Windows Forms-Steuerelements identisch.

  • Sie benötigen keine benutzerdefinierte grafische Benutzeroberfläche, oder Sie möchten eine neue grafische Benutzeroberfläche für ein vorhandenes Steuerelement entwerfen.

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 Steuerelement durch Erben von der Control-Klasse erfordert viel mehr Überlegungen und Aufwand als ein 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.

Sie müssen Code für das OnPaint-Ereignis des Steuerelements sowie featurespezifischen Code schreiben, um ein benutzerdefiniertes Steuerelement zu implementieren. Sie können auch die WndProc-Methode überschreiben und Windows-Meldungen direkt verarbeiten. Dies ist die beste Möglichkeit, ein Steuerelement zu erstellen. Sie müssen allerdings mit der Microsoft Win32-API vertraut sein, um diese Technik effektiv einsetzen zu können.

Ein Beispiel für ein benutzerdefiniertes Steuerelement ist ein Uhren-Steuerelement, das das Erscheinungsbild 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. Weitere Informationen finden Sie unter Vorgehensweise: Entwickeln eines einfachen Windows Forms-Steuerelements.

Empfehlung

Verwenden Sie Vererbung von der Control-Klasse, wenn Folgendes zutrifft:

  • Sie möchten eine benutzerdefinierte grafische Darstellung Ihres Steuerelements bereitstellen.

  • Sie müssen benutzerdefinierte Funktionalität implementieren, die über Standardsteuerelemente nicht verfügbar ist.

ActiveX-Steuerelemente

Obwohl die Windows Forms-Infrastruktur zum Hosten von Windows Forms-Steuerelementen optimiert wurde, können Sie weiterhin ActiveX-Steuerelemente verwenden. Visual Studio bietet Unterstützung für diese Aufgabe. Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen von ActiveX-Steuerelementen zu Windows Forms.

Fensterlose Steuerelemente

Die Microsoft Visual Basic® 6.0- und ActiveX-Technologien unterstützen fensterlose Steuerelemente. Fensterlose Steuerelemente werden in Windows Forms nicht unterstützt.

Benutzerdefiniertes Entwurfserlebnis

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 die Klasse DesignerAttribute, um Ihr Steuerelement Ihrem Designer zuzuordnen. Weitere Informationen finden Sie unter Erweitern der Entwurfszeitunterstützung und Vorgehensweise: Erstellen eines Windows Forms-Steuerelements, das Entwurfszeitfeatures nutzt.

Weitere Informationen