Share via


Cómo: Extender contenedores de componentes

Actualización: noviembre 2007

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
    {
    }
    
    class myContainer
       extends 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 se reemplaza 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());
       }
    }
    
    public void Add(System.ComponentModel.IComponent component)
       throws NonWidgetException
    {
       if ( component instanceof Widget  ) {
          super.Add(component);
       }
       else
       {
          throw new NonWidgetException() ;
       }
    }
    
  3. Agregue las propiedades o métodos nuevos que desee que incorpore el nuevo contenedor. Para obtener más información, vea Propiedades, campos y métodos de clases.

Vea también

Tareas

Cómo: Crear contenedores de componentes

Conceptos

Contenedores, sitios y componentes

Comunicación entre contenedores y componentes

Referencia

Container