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
Erstellen Sie eine Instanz des Steuerelements, das hinzugefügt werden soll.
Legen Sie die Eigenschaften des neuen Steuerelements fest.
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
Entfernen Sie den Ereignishandler aus dem Ereignis. Verwenden Sie in Visual Basic die RemoveHandler-Anweisung und in C# den Operator -=.
Verwenden Sie die Methode
Remove
, um das gewünschte Steuerelement aus derControls
-Auflistung des Panels zu löschen.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
.NET Desktop feedback