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 nellacreazione 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
    {
    }
    
  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());
       }
    }
    
  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