Arten von benutzerdefinierten Steuerelementen
Aktualisiert: November 2007
Mit .NET Framework können Sie neue Steuerelemente entwickeln und implementieren. Sie können die Funktionalität von vertrauten Benutzersteuerelementen sowie von vorhandenen Steuerelementen durch Vererbung erweitern. Sie können auch benutzerdefinierte Steuerelemente erstellen, die eigenständig zeichnen.
Die Auswahl des Steuerelementtyps, der erstellt werden soll, kann schwierig sein. In diesem Abschnitt werden die Unterschiede zwischen den verschiedenen Steuerelementtypen herausgestellt, von denen geerbt werden kann. Außerdem werden Informationen über die Wahl des richtigen Typs für das Projekt bereitgestellt.
Hinweis: |
---|
Informationen über das Erstellen eines Steuerelements zur Verwendung auf Web Forms finden Sie unter Entwickeln von benutzerdefinierten ASP.NET-Serversteuerelementen. |
Basissteuerelementklasse
Die Control-Klasse ist die Basisklasse für Windows Forms-Steuerelemente. Sie stellt die zur visuellen Anzeige in Windows Forms-Anwendungen erforderliche Infrastruktur bereit.
Die Control-Klasse führt zur visuellen Anzeige in Windows Forms-Anwendungen die folgenden Aufgaben aus:
Sie macht ein Fensterhandle verfügbar.
Sie verwaltet Meldungsrouting.
Sie stellt Maus- und Tastaturereignisse sowie viele andere Benutzeroberflächenereignisse bereit.
Sie stellt erweiterte Layoutfeatures bereit.
Sie enthält zahlreiche Eigenschaften für die visuelle Anzeige, z. B. ForeColor, BackColor, Height und Width.
Sie stellt die Sicherheit und Threadingunterstützung bereit, die ein Windows Forms-Steuerelement als Microsoft® ActiveX®-Steuerelement benötigt.
Da die Basisklasse bereits einen Großteil der Infrastruktur zur Verfügung stellt, ist das Erstellen eigener Windows Forms-Steuerelemente relativ einfach.
Arten von Steuerelementen
Windows Forms unterstützen drei Arten von benutzerdefinierten Steuerelementen, nämlich zusammengesetzte, erweiterte und benutzerdefinierte Steuerelemente. In den folgenden Abschnitten werden die verschiedenen Arten von Steuerelementen beschrieben und Empfehlungen zur Wahl des jeweils angemessenen Steuerelements bereitgestellt.
Zusammengesetzte Steuerelemente
Bei einem zusammengesetzten Steuerelement handelt es sich um eine Auflistung von Windows Forms-Steuerelementen, die in einem allgemeinen Container eingeschlossen sind. Diese Art von Steuerelement wird manchmal als Benutzersteuerelement bezeichnet. Die enthaltenen Steuerelemente werden als konstituierende Steuerelemente bezeichnet.
In einem zusammengesetzten Steuerelement sind alle inhärenten Funktionalitäten enthalten, die mit den darin enthaltenen Windows Forms-Steuerelementen verknüpft sind. Gleichzeitig können mithilfe des Containers einzelne Eigenschaften der Steuerelemente selektiv verfügbar gemacht und gebunden werden. Ein zusammengesetztes Steuerelement stellt zudem einen Großteil der standardmäßigen Tastaturbehandlungsfunktionen bereit, ohne dass hierfür zusätzliche Entwicklungsaufgaben erforderlich sind.
Zum Beispiel könnte ein zusammengesetztes Steuerelement erstellt werden, um Kundenadressdaten aus einer Datenbank anzuzeigen. Dieses Steuerelement könnte ein DataGridView-Steuerelement enthalten, um die Datenbankfelder anzuzeigen, eine BindingSource, um das Binden an eine Datenquelle zu behandeln, und ein BindingNavigator-Steuerelement, um durch die Datensätze zu navigieren. Sie könnten Datenbindungseigenschaften wahlweise verfügbar machen und das gesamte Steuerelement je nach Anwendung packen und wiederverwenden. Ein Beispiel für ein derartiges zusammengesetztes Steuerelement finden Sie unter Gewusst wie: Anwenden von Attributen auf Windows Forms-Steuerelemente.
Um ein zusammengesetztes Steuerelement zu erstellen, leiten Sie von der UserControl-Klasse ab. Die UserControl-Basisklasse stellt Tastaturrouting für untergeordnete Steuerelemente zur Verfügung und ermöglicht untergeordneten Steuerelementen, in einer Gruppe zu arbeiten. Weitere Informationen finden Sie unter Entwickeln eines zusammengesetzten Windows Forms-Steuerelements.
Empfehlung
Erben Sie von der UserControl-Klasse, wenn:
- Die Funktionalitäten mehrerer Windows Forms-Steuerelemente in einer einzigen wiederverwendbaren Einheit kombiniert werden sollen.
Erweiterte Steuerelemente
Ein geerbtes Steuerelement kann von einem beliebigen Windows Forms-Steuerelement abgeleitet werden. Mit dieser Vorgehensweise gelingt es, die gesamte inhärente Funktionalität eines Steuerelements in Windows Forms beizubehalten. Anschließend kann diese Funktionalität erweitert werden, indem benutzerdefinierte Eigenschaften, Methoden oder andere Features hinzugefügt werden. Dies ermöglicht es Ihnen, die Zeichenlogik des Basissteuerelements zu überschreiben und anschließend die Benutzeroberfläche zu erweitern, indem Sie sein Aussehen ändern.
Beispielsweise können Sie ein vom Button-Steuerelement abgeleitetes Steuerelement erstellen, das aufzeichnet, wie oft ein Benutzer darauf geklickt hat.
In einigen Steuerelementen kann außerdem eine benutzerdefinierte Darstellung zur grafischen Benutzeroberfläche des Steuerelements hinzugefügt werden, indem die OnPaint-Methode der Basisklasse überschrieben wird. Um eine erweiterte Schaltfläche zu erstellen, mit der Klicks aufgezeichnet werden, können Sie die OnPaint-Methode überschreiben, um die Basisimplementierung von OnPaint aufzurufen und anschließend die Anzahl der Klicks in eine Ecke des Clientbereichs vom Button-Steuerelement zu schreiben.
Empfehlung
Erben Sie von einem Windows Forms-Steuerelement, wenn:
Der größte Teil der benötigten Funktionalität bereits mit einem vorhandenen Windows Forms-Steuerelement identisch ist.
Eine benutzerdefinierte grafische Benutzeroberfläche nicht benötigt wird oder eine neue grafische Benutzeroberfläche für ein vorhandenes Steuerelement erstellt werden soll.
Benutzerdefinierte Steuerelemente
Eine weitere Möglichkeit zum Erstellen eines Steuerelements besteht darin, es von Grund auf neu zu erstellen, indem von Control geerbt wird. Mit der Control-Klasse wird die gesamte grundlegende Funktionalität bereitgestellt, die für Steuerelemente erforderlich ist, z. B. Maus- und Tastaturbehandlungsereignisse. Steuerelementspezifische Funktionalität oder eine grafische Oberfläche sind darin jedoch nicht enthalten.
Es ist wesentlich aufwändiger, ein Steuerelement durch Erben von der Control-Klasse zu erstellen als durch Erben von UserControl oder einem vorhandenen Windows Forms-Steuerelement. Da die Implementierung weitestgehend Ihnen überlassen ist, können Sie das Steuerelement flexibler gestalten als bei einem zusammengesetzten oder erweiterten Steuerelement und es genau an Ihre Anforderungen anpassen.
Um ein benutzerdefiniertes Steuerelement zu implementieren, müssen Sie Code für das OnPaint-Ereignis des Steuerelements sowie ggf. featurespezifischen Code schreiben. Sie können auch die WndProc-Methode überschreiben und Fenstermeldungen direkt behandeln. Dies ist die beste Möglichkeit zur Erstellung eines Steuerelements. Um sie effektiv verwenden zu können, müssen Sie jedoch mit der Microsoft Win32®-API vertraut sein.
Als Beispiel eines benutzerdefinierten Steuerelements kann ein Uhren-Steuerelement herangezogen werden, das das Aussehen und Verhalten einer Analoguhr widerspiegelt. Durch das Aufrufen des benutzerdefinierten Zeichnens wird erreicht, dass sich die Zeiger der Uhr als Antwort auf Tick-Ereignisse einer internen Timer-Komponente bewegen. Weitere Informationen finden Sie unter Gewusst wie: Entwickeln eines einfachen Windows Forms-Steuerelements.
Empfehlung
Erben Sie von der Control-Klasse, wenn:
Eine benutzerdefinierte grafische Darstellung des Steuerelements bereitgestellt werden soll.
Benutzerdefinierte Funktionalität hinzugefügt werden muss, die nicht über Standardsteuerelemente verfügbar ist.
ActiveX-Steuerelemente
Obwohl die Windows Forms-Infrastruktur für die Aufnahme von Windows Forms-Steuerelementen optimiert ist, können Sie weiterhin ActiveX-Steuerelemente verwenden. Visual Studio bietet Unterstützung für diese Aufgabe. Weitere Informationen hierzu finden Sie unter Gewusst wie: 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.
Benutzerdefinierte Entwurfserfahrung
Wenn Sie eine benutzerdefinierte Entwurfszeiterfahrung implementieren müssen, können Sie Ihren eigenen Designer erstellen. Leiten Sie bei zusammengesetzten Steuerelementen die benutzerdefinierte Designerklasse vom ParentControlDesigner oder den DocumentDesigner-Klassen ab. Bei erweiterten und benutzerdefinierten Steuerelementen leiten Sie die benutzerdefinierte Designerklasse von der ControlDesigner-Klasse ab.
Verwenden Sie das DesignerAttribute, um das Steuerelement mit dem Designer zu verknüpfen. Weitere Informationen finden Sie unter Erweitern der Entwurfszeitunterstützung und Gewusst wie: Erstellen eines Windows Forms-Steuerelements, das Entwurfszeitfeatures nutzt.
Siehe auch
Aufgaben
Gewusst wie: Entwickeln eines einfachen Windows Forms-Steuerelements
Gewusst wie: Erstellen eines Windows Forms-Steuerelements, das Entwurfszeitfeatures nutzt
Konzepte
Entwickeln eines zusammengesetzten Windows Forms-Steuerelements
Weitere Ressourcen
Entwickeln benutzerdefinierter Windows Forms-Steuerelemente mit .NET Framework