2016-05-19 6 views
1

Ich habe einen ToolStrip funktioniert wie Windows-Taskleiste. Wenn der Benutzer ein neues Formular öffnet, wird auf ToolStrip ein Etikett mit dem Symbol des Formulars als neues Etikettenelement angezeigt. Ich habe auch einen Knopf, der alle Formulare gleichzeitig schließt. Aber ich möchte auch alle relevanten Etikett entfernen, so fügte ich diese in das Click-Ereignis ...VB.NET - Wie mehrere Elemente von einem ToolStrip zu löschen?

For Each mdichildlabel As ToolStripLabel In Me.BottomToolStrip.Items 
    If mdichildlabel.Name = "NewLabel" Then 
     BottomToolStrip.Items.Remove(mdichildlabel) 
    End If 
Next 

Aber ich bekomme diese Fehlermeldung: An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll

Antwort

2

nicht funktioniert uns nicht sagen, was Sie sehen, dass das nicht funktioniert.

Im Allgemeinen können Sie eine Sammlung nicht ändern, während Sie sie wegen der sich ändernden Indexpositionen beibehalten. Versuchen Sie es rückwärts zu durchlaufen:

For i As Integer = Me.BottomToolStrip.Items.Count - 1 to 0 Step -1 
    If Me.BottomToolStrip.Items(i).Name = "NewLabel" Then 
    Me.BottomToolStrip.Items.RemoveAt(i) 
    End If 
Next 
+0

Vielen Dank !!! Ich änderte den "funktioniert nicht" -Satz mit dem Fehler, den ich bekam ... –

Verwandte Themen