Share via


Cómo: Extender contenedores de componentes

Los contenedores de componentes son totalmente extensibles. Puede heredar de la clase Container y agregar propiedades o métodos, agregar funcionalidad personalizada para exigir reglas, reemplazar métodos base o cualquier otra funcionalidad personalizada que desee que incorpore el contenedor. Para obtener información detallada sobre los contenedores y cómo se extienden, vea Contenedores, sitios y componentes.

Una clase Container se extiende como cualquier clase base. Cree una clase que herede las propiedades de la clase base, reemplace los métodos base que desee extender y agregue las propiedades o métodos adicionales que sean necesarios. A continuación, puede utilizar la nueva clase del mismo modo que una clase Container estándar y utilizar las nuevas funcionalidades que haya codificado.

Para extender la clase base Container

  1. Declare una nueva clase que herede de la clase Container.

    Public Class myContainer
       Inherits System.ComponentModel.Container
    End Class
    
    class myContainer: System.ComponentModel.Container
    {
    }
    
  2. Reemplace los métodos que desee de la clase base para agregar funcionalidad adicional. En el ejemplo siguiente se muestra cómo invalidar el método Add.

    Nota

    En realidad, Container tiene dos sobrecargas de Add y, en este ejemplo, debería reemplazarse cada una de ellas.

    ' 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. Agregue las propiedades o métodos nuevos que desee que incorpore el nuevo contenedor.

Vea también

Tareas

Cómo: Crear contenedores de componentes

Referencia

Container

Conceptos

Contenedores, sitios y componentes

Comunicación entre contenedores y componentes