Erstellen und Verwenden von Komponenten in Visual Basic

Eine Komponente ist eine Klasse, die die Schnittstelle System.ComponentModel.IComponent implementiert oder die direkt oder indirekt von einer Klasse ableitet, die IComponent implementiert. Eine .NET Framework-Komponente ist ein Objekt, das wiederverwendet werden, mit anderen Objekten interagieren, die Steuerung von externen Ressourcen ermöglichen und Unterstützung während der Entwurfszeit bieten kann.

Ein wichtiges Feature der Komponenten ist, dass sie entworfen werden können, was bedeutet, dass eine Klasse, die eine Komponente ist, in der Visual Studio integrierten Entwicklungsumgebung verwendet werden kann. Eine Komponente kann der Toolbox hinzugefügt, auf einem Formular abgelegt, und auf der Entwurfsoberfläche bearbeitet werden. Beachten Sie, dass die Basisunterstützung für die Entwurfszeit für Komponenten in .NET Framework integriert ist; ein Komponentenentwickler muss keine zusätzlichen Schritte leisten, um die Basisfunktionalität zur Entwurfszeit zu nutzen.

Ein Steuerelement ist einer Komponente ähnlich, da beide entworfen werden können. Allerdings stellt ein Steuerelement eine Benutzeroberfläche bereit, eine Komponente jedoch nicht. Ein Steuerelement muss von einer der Basissteuerklassen abgeleitet werden: Control oder Control.

Wann eine Komponente zu erstellen ist

Wenn Ihre Klasse auf einer Entwurfsoberfläche (z.B. dem Windows Forms- oder Web Forms-Designer) verwendet wird, aber keine Benutzeroberfläche hat, sollte sie eine Komponente sein und IComponent implementieren, oder von einer Klasse abgeleitet werden, die direkt oder indirekt IComponent implementiert.

Die Klassen Component und MarshalByValueComponent sind Implementierungen der Schnittstelle IComponent. Der Hauptunterschied zwischen diesen Klassen besteht darin, das die Component-Klasse als Verweis gemarshallt wird, während IComponent als Wert gemarshallt wird. Die folgende Liste enthält allgemeine Richtlinien für die Implementierung.

  • Wenn Ihre Komponente als Verweis gemarshallt werden muss, leiten Sie von Component ab.

  • Wenn Ihre Komponente als Wert gemarshallt werden muss, leiten Sie 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 Namespace System.ComponentModel stellt Klassen bereit, mit denen das Verhalten von Komponenten und Steuerelementen zur Laufzeit und zur Entwurfszeit implementiert wird. Dieser Namespace enthält die Basisklassen und Schnittstellen zum Implementieren von Attributen und Typkonvertern, die Datenquellen binden und Komponenten lizenzieren.

Die zentralen Komponentenklassen sind:

Einige der Klassen, die für die Komponentenlizenzierung verwendet werden, sind:

  • License. Abstrakte Basisklasse für alle Lizenzen. Eine Lizenz wird einer bestimmten Instanz einer Komponente erteilt.

  • LicenseManager. Stellt Eigenschaften und Methoden zur Verfügung, um eine Lizenz zu einer Komponente hinzuzufügen und einen LicenseProvider zu verwalten.

  • LicenseProvider. Die abstrakte Basisklasse für die Implementierung eines Lizenzgebers.

  • LicenseProviderAttribute. Gibt die Klasse LicenseProvider an, die mit einer Klasse verwendet werden sollen.

Klassen, die häufig zum Beschreiben und Beibehalten von Komponenten verwendet werden.

  • TypeDescriptor. Stellt Informationen zu den Merkmalen für eine Komponente bereit, z.B. zu Attributen, Eigenschaften und Ereignissen.

  • EventDescriptor. Enthält Informationen über ein Ereignis.

  • PropertyDescriptor. Gibt Informationen über eine Eigenschaft an.

Klasse vs. Komponente vs. Steuerelement
Definiert Komponente und Steuerelement, und erläutert die Unterschiede zwischen ihnen und den Klassen.

Komponentenerstellung
Roadmap für erste Schritte mit Komponenten.

Exemplarische Vorgehensweise: Erstellen von Komponenten
Enthält Links zu Themen, die eine Schritt-für-Schritt-Anleitung für die Programmierung von Komponenten bereitstellen.

Komponentenklassen
Beschreibt, was eine Klasse zu einer Komponente macht, wie Komponentenfunktionen verfügbar gemacht werden und wie der Zugriff auf Komponenten und die Erstellung von Komponenteninstanzen gesteuert werden.

Problembehandlung beim Erstellen von Komponenten und Steuerelementen
Erläutert die Behebung häufiger Probleme.

Siehe auch

Vorgehensweise: Zugriff auf Entwurfszeitunterstützung in Windows Forms
Vorgehensweise: Erweitern der Darstellung und des Verhaltens von Steuerelementen im Entwurfsmodus
Vorgehensweise: Ausführen von benutzerdefinierter Initialisierung für Steuerelemente im Entwurfsmodus