Freigeben über


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:

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

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