Erstellen und Verwenden von Komponenten in Visual Basic
Aktualisiert: November 2007
Eine Komponente ist eine Klasse, die die System.ComponentModel.IComponent-Schnittstelle implementiert oder die direkt oder indirekt von einer Klasse abgeleitet ist, die IComponent implementiert. Eine .NET Framework-Komponente ist ein wiederverwendbares Objekt, das mit anderen Objekten interagieren kann, die Steuerung externer Ressourcen ermöglicht und Unterstützung zur Entwurfszeit bietet.
Ein wichtiges Feature von Komponenten besteht darin, dass diese entwurfsfähig sind, d. h., dass eine Klasse, die eine Komponente ist, in der Visual Studio-IDE verwendet werden kann. Eine Komponente kann der Toolbox hinzugefügt, per Drag & Drop in ein Formular eingefügt und in einer Entwurfsoberfläche geändert werden. Beachten Sie, dass die Basisunterstützung zur Entwurfszeit für Komponenten in .NET Framework integriert ist. Ein Komponentenentwickler muss daher keine zusätzlichen Schritte unternehmen, um die Vorteile der Basisfunktionalität zur Entwurfszeit nutzen zu können.
Ein Steuerelement ist einer Komponente ähnlich, da beide entwurfsfähig sind. Ein Steuerelement stellt jedoch im Gegensatz zu einer Komponente eine Benutzeroberfläche bereit. Steuerelemente müssen entweder von der Control-Basisklasse oder der Control-Basisklasse abgeleitet sein.
Richtlinien für die Implementierung von Komponenten
Wenn eine Klasse in einer Entwurfsoberfläche (z. B. dem Windows Forms- oder Web Forms-Designer) verwendet werden soll, jedoch über keine Benutzeroberfläche verfügt, erstellen Sie diese als Komponente, die IComponent implementiert, oder leiten Sie diese von einer Klasse ab, die IComponent direkt oder indirekt implementiert.
Die Component-Klasse und die MarshalByValueComponent-Klasse sind Basisimplementierungen der IComponent-Schnittstelle. Der wesentliche Unterschied zwischen diesen Klassen liegt darin, dass die Component-Klasse als Verweis gemarshallt wird, während die IComponent als Wert gemarshallt wird. Die folgende Liste enthält allgemeine Richtlinien für die Implementierung.
Wenn eine Komponente als Verweis gemarshallt werden muss, leiten Sie diese von Component ab.
Wenn eine Komponente als Wert gemarshallt werden muss, leiten Sie diese von MarshalByValueComponent ab.
Wenn die Komponente aufgrund einfacher Vererbung nicht von einer der Basisimplementierungen abgeleitet werden kann, implementieren Sie IComponent.
Weitere Informationen zur Unterstützung während der Entwurfszeit finden Sie unter Entwurfszeitattribute für Komponenten und Erweitern der Entwurfszeitunterstützung.
Komponentenklassen
Der System.ComponentModel-Namespace stellt Klassen bereit, die für die Implementierung des Verhaltens von Komponenten und Steuerelementen zur Laufzeit und zur Entwurfszeit verwendet werden. Dieser Namespace enthält die Basisklassen und Schnittstellen zum Implementieren von Attributen, Typkonvertern, Bindungen an Datenquellen und Lizenzierungskomponenten.
Im Folgenden finden Sie eine Auflistung der wichtigsten Komponentenklassen:
Component. Eine Basisimplementierung der IComponent-Schnittstelle. Diese Klasse ermöglicht die gemeinsame Nutzung von Objekten durch Anwendungen.
MarshalByValueComponent. Eine Basisimplementierung der IComponent-Schnittstelle.
Container. Die Basisimplementierung der IContainer-Schnittstelle. Diese Klasse kapselt 0 (null) oder mehr Komponenten.
Im Folgenden werden einige der Klassen aufgeführt, die für die Komponentenlizenzierung verwendet werden:
License. Die abstrakte Basisklasse für alle Lizenzen. Eine Lizenz wird für eine bestimmte Instanz einer Komponente erteilt.
LicenseManager. Stellt Eigenschaften und Methoden bereit, mit denen einer Komponente eine Lizenz hinzugefügt werden und ein LicenseProvider verwaltet werden kann.
LicenseProvider. Die abstrakte Basisklasse für die Implementierung eines Lizenzgebers.
LicenseProviderAttribute. Gibt die LicenseProvider-Klasse für eine Klasse an.
Im Folgenden werden Klassen aufgeführt, die im Allgemeinen für das Beschreiben und das Beibehalten von Komponenten verwendet werden.
TypeDescriptor. Stellt Informationen über die Merkmale einer Komponente bereit, z. B. deren Attribute, Eigenschaften und Ereignisse.
EventDescriptor. Stellt Informationen über ein Ereignis bereit.
PropertyDescriptor. Stellt Informationen über eine Eigenschaft bereit.
Verwandte Abschnitte
Vergleich von Klassen, Komponenten und Steuerelementen
Definiert die Begriffe Komponente und Steuerelement und erläutert deren Unterschiede zu Klassen.Erstellen von Komponenten
Bietet einen Wegweiser für den Einstieg in die Arbeit mit Komponenten.Exemplarische Vorgehensweise: Erstellen von Komponenten
Enthält Hyperlinks zu Themen mit schrittweisen Anleitungen für die Komponentenprogrammierung.Komponentenklassen
Beschreibt, in welchen Fall Klassen Komponenten sind, die Möglichkeiten zum Verfügbarmachen der Komponentenfunktionalität, die Steuerung des Zugriffs auf Komponenten und die Steuerung der Erstellung von Komponenteninstanzen.Problembehandlung beim Erstellen von Komponenten und Steuerelementen
Bietet Lösungen für allgemeine Probleme.
Siehe auch
Aufgaben
Gewusst wie: Zugriff auf Entwurfszeitunterstützung in Windows Forms
Gewusst wie: Erweitern der Darstellung und des Verhaltens von Steuerelementen im Entwurfsmodus
Gewusst wie: Ausführen von benutzerdefinierter Initialisierung für Steuerelemente im Entwurfsmodus