Gewusst wie: Erweitern von Komponentencontainern
Aktualisiert: November 2007
Komponentencontainer sind vollständig erweiterbar. Sie können von der Container-Klasse erben und Eigenschaften oder Methoden hinzufügen, benutzerdefinierte Funktionen zur Durchsetzung von Regeln hinzufügen, Basismethoden überschreiben oder andere benutzerdefinierte Funktionen für den Container implementieren. Einzelheiten zu Containern sowie zu deren Erweiterung finden Sie unter Container, Sites und Komponenten.
Sie erweitern einen Container wie eine beliebige Basisklasse. Erstellen Sie eine Klasse, die die Eigenschaften der Basisklasse erbt, überschreiben Sie die Basismethoden, die Sie erweitern möchten, und fügen Sie zusätzlich benötigte Eigenschaften oder Methoden hinzu. Anschließend können Sie die neue Klasse wie einen standardmäßigen Container verwenden und die neu codierte Funktionalität nutzen.
So erweitern Sie die Container-Basisklasse
Deklarieren Sie eine neue Klasse, die von der Container-Klasse erbt.
Public Class myContainer Inherits System.ComponentModel.Container End Class
class myContainer: System.ComponentModel.Container { }
class myContainer extends System.ComponentModel.Container { }
Überschreiben Sie die Methoden der Basisklasse, um zusätzliche Funktionalität zu integrieren. Im folgenden Beispiel sehen Sie, wie die Add-Methode überschrieben wird.
Hinweis: Container besitzt zwei Add-Überladungen, die beide in diesem Beispiel überschrieben werden sollen.
' Because Add is overloaded, this line includes the Overloads keyword. Public Overloads Overrides Sub Add(ByVal component As _ System.ComponentModel.IComponent) ' Determines if the component can be added to the container. If TypeOf component Is Widget Then ' Calls the base Add function to add the component. MyBase.Add(component) Else ' Throws an exception. Throw New NonWidgetException() End If End Sub
public override void Add(System.ComponentModel.IComponent component) { if (component is Widget) base.Add(component); else { throw(new NonWidgetException()); } }
public void Add(System.ComponentModel.IComponent component) throws NonWidgetException { if ( component instanceof Widget ) { super.Add(component); } else { throw new NonWidgetException() ; } }
Fügen Sie neue Eigenschaften oder Methoden für den neuen Container hinzu. Einzelheiten dazu finden Sie unter Klasseneigenschaften, Felder und Methoden.
Siehe auch
Aufgaben
Gewusst wie: Erstellen von Komponentencontainern
Konzepte
Container, Sites und Komponenten
Kommunikation zwischen Containern und Komponenten