Wie lösche ich in VB.NET 2003 alle ausgewählten Einträge aus einer ListBox?

Antwort vom

**In VB.NET 2003 löschst du mehrere markierte ListBox-Einträge am sichersten rückwärts über `SelectedIndices`, weil sich die Indizes beim Entfernen sofort verschieben.** ```vb Dim i As Integer For i = ListBox1.SelectedIndices.Count - 1 To 0 Step -1 ListBox1.Items.RemoveAt(ListBox1.SelectedIndices(i)) Next ``` ## Warum rückwärts Wenn du von oben nach unten löschst, rutschen die restlichen Einträge nach jedem `RemoveAt` nach oben. Dadurch überspringst du leicht Elemente oder löschst den falschen Eintrag. Rückwärts passiert das nicht, weil die noch nicht bearbeiteten Indizes gültig bleiben. ## Wichtiger Unterschied `SelectedItems` direkt in einer `For Each`-Schleife zu löschen ist in VB.NET 2003 oft fehleranfällig, weil du damit gerade die Sammlung veränderst, über die du iterierst. Sicher ist deshalb: - entweder über `SelectedIndices` rückwärts löschen - oder vorher die zu löschenden Werte zwischenspeichern ## Falls du wirklich alles leeren willst Wenn nicht nur die markierten, sondern **alle** Einträge weg sollen: ```vb ListBox1.Items.Clear() ```

Kategorie: Technik Tags: VB.NET ListBox Einträge

Verwandte Fragen

Wie heißen die einzelnen Menügruppen im MainMenu von VB.NET 2003?

Ja: Diese Einträge heißen in VB.NET 2003 beim MainMenu in der Praxis meist Top-Level-Menüpunkte oder Hauptmenüs; technisch sind es MenuItem-Objekte. Wenn du also „Datei&ldq...