Partilhar via


Como: Estender os recipientes de componente

Os recipientes de componente são completamente extensíveis. Você pode herdar de Container de classe e adicionar propriedades ou métodos, adicionar funcionalidade personalizada para impor regras, substituir os métodos base ou qualquer outra funcionalidade personalizada que você deseja que seu contêiner para incorporar. Para obter detalhes sobre os recipientes e recipientes de extensão, consulte recipientes, Sites e componentes.

Você pode estender um Container como você estenderia a qualquer classe de base. Criar uma classe que herda as propriedades da classe base, substitua todos os métodos básicos que você deseja estender e adicionar quaisquer propriedades ou métodos adicionais que você precisa. Você pode usar sua nova classe como faria com um padrão Container e usar qualquer uma das novas funcionalidades codificado por você.

Estender a classe base do recipiente

  1. Declara uma nova classe que herda de Container classe.

    Public Class myContainer
       Inherits System.ComponentModel.Container
    End Class
    
    class myContainer: System.ComponentModel.Container
    {
    }
    
    class myContainer
       extends System.ComponentModel.Container
    {
    }
    
  2. Substitua quaisquer métodos de classe base para adicionar funcionalidade adicional. O exemplo a seguir mostra como substituir o Add método.

    ObservaçãoObservação

    O Container realmente tem duas sobrecargas do Add, e neste exemplo, você gostaria de fornecer uma substituição de cada.

    ' 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. Adicione novas propriedades ou métodos que você deseja que o seu novo contêiner para incorporar.

Consulte também

Tarefas

Como: Criar recipientes de componente

Referência

Container

Conceitos

Recipientes, Sites e componentes

Comunicação entre os contêineres e componentes