Partager via


Guide pratique pour ajouter des contrôles dans une collection au moment de l’exécution, ou comment les supprimer

Les tâches courantes dans le développement d’applications ajoutent des contrôles et suppriment des contrôles de n’importe quel contrôle conteneur sur vos formulaires (par exemple, le ou GroupBox le Panel contrôle, ou même le formulaire lui-même). Au moment de la conception, vous pouvez faire glisser les contrôles directement vers un panneau ou une zone de groupe. Au moment de l’exécution, ces contrôles gèrent une collection Controls, qui assure le suivi des contrôles qui y sont placés.

Remarque

L’exemple de code suivant s’applique à n’importe quel contrôle qui gère une collection de contrôles qu’il contient.

Pour ajouter un contrôle à une collection par programme

  1. Créez une instance du contrôle à ajouter.

  2. Définissez les propriétés du nouveau contrôle.

  3. Ajoutez le contrôle à la collection Controls du contrôle parent.

    L’exemple de code suivant montre comment créer une instance du Button contrôle. Il nécessite un formulaire avec un Panel contrôle et que la méthode de gestion des événements pour le bouton en cours de création, NewPanelButton_Clickexiste déjà.

    Public NewPanelButton As New Button()  
    
    Public Sub AddNewControl()  
       ' The Add method will accept as a parameter any object that derives  
       ' from the Control class. In this case, it is a Button control.  
       Panel1.Controls.Add(NewPanelButton)  
       ' The event handler indicated for the Click event in the code
       ' below is used as an example. Substite the appropriate event  
       ' handler for your application.  
       AddHandler NewPanelButton.Click, AddressOf NewPanelButton_Click  
    End Sub  
    
    public Button newPanelButton = new Button();  
    
    public void addNewControl()  
    {
       // The Add method will accept as a parameter any object that derives  
       // from the Control class. In this case, it is a Button control.  
       panel1.Controls.Add(newPanelButton);  
       // The event handler indicated for the Click event in the code
       // below is used as an example. Substitute the appropriate event  
       // handler for your application.  
       this.newPanelButton.Click += new System.EventHandler(this. NewPanelButton_Click);  
    }  
    

Pour supprimer des contrôles d’une collection par programme

  1. Supprimez le gestionnaire d’événements de l’événement. Dans Visual Basic, utilisez l’instruction RemoveHandler mot clé ; en C#, utilisez l’opérateur -= .

  2. Utilisez la méthode Remove pour supprimer le contrôle souhaité dans la collection Controls du panneau.

  3. Appelez la Dispose méthode pour libérer toutes les ressources utilisées par le contrôle.

    Public Sub RemoveControl()  
    ' NOTE: The code below uses the instance of
    ' the button (NewPanelButton) from the previous example.  
       If Panel1.Controls.Contains(NewPanelButton) Then  
          RemoveHandler NewPanelButton.Click, AddressOf _
             NewPanelButton_Click  
          Panel1.Controls.Remove(NewPanelButton)  
          NewPanelButton.Dispose()  
       End If  
    End Sub  
    
    private void removeControl(object sender, System.EventArgs e)  
    {  
    // NOTE: The code below uses the instance of
    // the button (newPanelButton) from the previous example.  
       if(panel1.Controls.Contains(newPanelButton))  
       {  
          this.newPanelButton.Click -= new System.EventHandler(this.
             NewPanelButton_Click);  
          panel1.Controls.Remove(newPanelButton);  
          newPanelButton.Dispose();  
       }  
    }  
    

Voir aussi