Vorgehensweise: Hinzufügen bzw. Entfernen von Steuerelementen zu bzw. aus einer Auflistung von Steuerelementen zur Laufzeit

Allgemeine Aufgaben bei der Anwendungsentwicklung sind das Hinzufügen von Steuerelementen zu bzw. das Entfernen aus einem beliebigen Containersteuerelement in Formularen (wie z. B. die Steuerelemente Panel oder GroupBox oder sogar das Formular selbst). Zur Entwurfszeit können Steuerelemente direkt auf ein Panel oder Gruppenfeld gezogen werden. Zur Laufzeit verwalten diese Steuerelemente eine Controls-Auflistung, die protokolliert, welche Steuerelemente darauf platziert werden.

Hinweis

Das folgende Codebeispiel gilt für jedes Steuerelement, das eine Auflistung von Steuerelementen verwaltet.

So fügen Sie ein Steuerelement programmgesteuert zu einer Auflistung hinzu

  1. Erstellen Sie eine Instanz des Steuerelements, das hinzugefügt werden soll.

  2. Legen Sie die Eigenschaften des neuen Steuerelements fest.

  3. Fügen Sie der Controls-Auflistung des übergeordneten Elements das Steuerelement hinzu.

    Im folgenden Codebeispiel wird gezeigt, wie eine Instanz des Button-Steuerelements erstellt wird. Voraussetzung hierfür sind ein Formular mit einem Panel-Steuerelement und das Vorhandensein der Ereignisbehandlungsmethode für die zu erstellende Schaltfläche, NewPanelButton_Click.

    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);  
    }  
    

So entfernen Sie Steuerelemente programmgesteuert aus einer Auflistung

  1. Entfernen Sie den Ereignishandler aus dem Ereignis. Verwenden Sie in Visual Basic die RemoveHandler-Anweisung und in C# den Operator -=.

  2. Verwenden Sie die Methode Remove, um das gewünschte Steuerelement aus der Controls-Auflistung des Panels zu löschen.

  3. Rufen Sie die Dispose-Methode auf um alle Ressourcen freizugeben, die vom Steuerelement verwendet werden.

    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();  
       }  
    }  
    

Weitere Informationen