Freigeben über


Hinzufügen bzw. Entfernen von Steuerelementen zu bzw. aus einer Sammlung 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.

Anmerkung

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

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

  1. Erstellen Sie eine Instanz des hinzuzufügenden Steuerelements.

  2. Legen Sie die Eigenschaften des neuen Steuerelements fest.

  3. Fügen Sie der Controls-Sammlung 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 aus einer Auflistung programmgesteuert

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

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

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

    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