Entwickler-Ecke

WinForms - Eintrag aus einer ListBox löschen


Yankyy02 - Mo 10.09.12 20:33
Titel: Eintrag aus einer ListBox löschen
Servus miteinander,

ich hätte eine Frage wie der Titel schon sagt wie man einen Eintrag aus einer ListBox löschen sollte!?

Ich habe hierzu 3 Beispiele und es wäre nett wenn mir jemand erklären könnte wie man es richtig macht bzw.
welche die beste Lösung ist damit ich für mich überprüfen kann ob ich es auch wirklich richtig nachvollzogen
habe!

Nr. 1


C#-Quelltext
1:
2:
ListBox.ObjectCollection items = this.myListBox.Items;
items.Remove(items[myListBox.SelectedIndex]);


Nr. 2


C#-Quelltext
1:
2:
Object item = mylistBox.Items[myListBox.SelectedIndex];
myListBox.Items.Remove(item);


Nr. 3

Und das ist mein persönlicher Favorit
(obwohl da sicher einer denken wird --> Ah Hauptsache es funktioniert)


C#-Quelltext
1:
myListBox.Items.Remove(myListBox.SelectedItem);                    


Ich wäre sehr dankbar wenn mir jemand da kurz helfen könnte!


MfG

Gery


Christoph1972 - Mo 10.09.12 21:22

Also, mein Favorit wäre auch Nr.3. Aber ich binde meine ListBox immer an eine List<ListBoxItem> oder an eine ObserveableCollection<Object> und lösche dann aus der Auflistung, und zwar wie gehabt mit Nr.3. :-)


Yankyy02 - Di 11.09.12 10:56

Danke für deine Antwort!

Aber sieht jemand Vorteile gegenüber den anderen bzw. Nachteile gegenüber meiner
"Favorit" Variante ?!

MfG


Christoph1972 - Di 11.09.12 16:28

Nr.3 ist ein Einzeiler :-)


Th69 - Di 11.09.12 18:05

Hi,

ich würde ja zu Nr. 4 tendieren:

C#-Quelltext
1:
myListBox.Items.RemoveAt(myListBox.SelectedIndex);                    

Bei den anderen Varianten könnte es sein, falls ein Objekt mehrfach in der Liste vorhanden ist, daß das erste in der Liste entfernt wird (und nicht unbedingt das mittels SelectedIndex ausgewählte) - ist natürlich nur als Spezialfall zu sehen (z.B. bei Wertetypen wie Zahlen).

Aber bei einer datengebundenen ListBox sollte man selbstverständlich den Eintrag aus der Liste entfernen (wie Christoph1972 schon geschrieben hat).


Yankyy02 - Mi 12.09.12 10:05

Servus,

super danke für deine Antwort!

MfG