Freigeben über


Gewusst wie: Erweitern von Komponentencontainern

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

  1. 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
    {
    }
    
  2. Überschreiben Sie die Methoden der Basisklasse, um zusätzliche Funktionalität zu integrieren. Im folgenden Beispiel sehen Sie, wie die Add-Methode überschrieben wird.

    Tipp

    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() ;
       }
    }
    
  3. Fügen Sie neue Eigenschaften oder Methoden für den neuen Container hinzu.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von Komponentencontainern

Referenz

Container

Konzepte

Container, Sites und Komponenten

Kommunikation zwischen Containern und Komponenten