Condividi tramite


Procedura: estendere i contenitori di componenti

I contenitori di componenti sono completamente estensibili. È possibile ereditare dalla classe Container e aggiungere proprietà o metodi, aggiungere funzionalità personalizzate per attivare le regole, eseguire l'override di metodi di base oppure di qualunque altra funzionalità personalizzata che si desidera incorporare nel contenitore. Per informazioni dettagliate sui contenitori e sulla relativa estensione, vedere Contenitori, siti e componenti.

Il processo di estensione di un Container è analogo a quello di qualunque altra classe base e consiste nella creazione di una classe che erediti le proprietà della classe base, nell'override di eventuali metodi di base che si desidera estendere e nell'aggiunta di tutte le ulteriori proprietà o metodi necessari. A questo punto è possibile utilizzare la nuova classe come se si trattasse di un Container standard e utilizzarne tutte le nuove funzionalità.

Per estendere la classe base Container

  1. Dichiarare una nuova classe che erediti dalla classe Container.

    Public Class myContainer
       Inherits System.ComponentModel.Container
    End Class
    
    class myContainer: System.ComponentModel.Container
    {
    }
    
    class myContainer
       extends System.ComponentModel.Container
    {
    }
    
  2. Eseguire l'override di eventuali metodi della classe base per aggiungere ulteriori funzionalità. Nell'esempio seguente viene illustrato come eseguire l'override del metodo Add.

    Nota

    Container contiene in realtà due overload di Add e, in questo esempio, sarà possibile eseguire un override di ciascuno di essi.

    ' 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. Aggiungere tutte le nuove proprietà o i nuovi metodi che si desidera incorporare nel nuovo contenitore.

Vedere anche

Attività

Procedura: creare contenitori di componenti

Riferimenti

Container

Concetti

Contenitori, siti e componenti

Comunicazione tra contenitori e componenti