Comment : étendre des conteneurs de composants

Mise à jour : novembre 2007

Les conteneurs sont complètement extensibles. Vous pouvez hériter de la classe Container et ajouter des propriétés et des méthodes ainsi que des fonctionnalités personnalisées pour appliquer des règles ou encore substituer les méthodes de base ou toute autre fonctionnalité personnalisée que vous voulez incorporer à votre conteneur. Pour plus d'informations sur les conteneurs et leur extension, consultez Conteneurs, sites et composants.

Une classe de base Container s'étend comme n'importe quelle autre classe. Vous créez une classe qui hérite des propriétés de la classe de base, substituez les méthodes de base que vous souhaitez étendre et ajoutez les propriétés et méthodes supplémentaires dont vous avez besoin. Vous pouvez ensuite utiliser votre nouvelle classe comme n'importe quelle classe de base Container standard et utiliser toute nouvelle fonctionnalité que vous avez encodée.

Pour développer la classe de base Container

  1. Déclarez une nouvelle classe qui hérite de la classe Container.

    Public Class myContainer
       Inherits System.ComponentModel.Container
    End Class
    
    class myContainer: System.ComponentModel.Container
    {
    }
    
    class myContainer
       extends System.ComponentModel.Container
    {
    }
    
  2. Substituez une méthode quelconque de la classe de base afin d'ajouter des fonctionnalités supplémentaires. L'exemple suivant montre comment substituer la méthode Add.

    Remarque :

    Container possède en fait deux surcharges de Add et, dans cet exemple, vous voulez substituer chacune d'elles.

    ' 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. Ajoutez toutes les nouvelles propriétés ou méthodes que vous souhaitez incorporer à votre conteneur. Pour plus d'informations, consultez Propriétés, champs et méthodes de classe.

Voir aussi

Tâches

Comment : créer des conteneurs de composants

Concepts

Conteneurs, sites et composants

Communication entre les conteneurs et leurs composants

Référence

Container