scroller
Goto Top

Windows - forms Alle Items aus CheckedListbox löschen

Hi,

ich benutze windows Forms in Powershell und möchte alle Items aus einer CheckedListbox auf einmal löschen.

im WWW habe ich dafür folgenden Code gefunden:

for ($i = 0; $i -lt $checkedListBox1.Items.Count; $i++){$checkedListBox1.Items.RemoveAt($i)}


komischerweise wird jedoch nur jeder zweitesItem gelöscht. Beim zweiten Aufruf wieder.
Usw. bis dann irgendwann alle weg sind.
Es wäre schön wenn alle sofort beim ersten klick geklöscht werden. face-smile
Was mache ich falsch?

Danke!
SC

Content-Key: 172168

Url: https://administrator.de/contentid/172168

Printed on: April 16, 2024 at 06:04 o'clock

Member: pulse
pulse Aug 28, 2011 at 12:02:01 (UTC)
Goto Top
die eigenschaft "items" ist eine auflistung und besitzt somit die methode "clear" die alle einträge löscht
Member: mathe172
mathe172 Aug 28, 2011 at 16:03:35 (UTC)
Goto Top
Hallo,

Ich denke, pulse hat das Problem bereits gelöst. Als Erklärung, warum nur jedes zweite Item gelöscht wird, schau dir mal dieses Beispiel an:

Am Anfang hat die Liste 5 Elemente:
A
B
C
D
E
F

Im ersten Schleifendurchgang wird das erste gelöscht:
B
C
D
E
F

Jetzt wird das zweite gelöscht (Achtung: B ist das erste, C das zweite):
B
D
E
F

Jetzt das dritte:
B
D
F

Jetzt würde das vierte gelöscht werden (Die Schliefe geht immer noch bis 6). Eigentlich sollte das ja einen Fehler produzieren, den du wahrscheinlich unterdrückt hast.

MfG,
Mathe172
Mitglied: 99045
99045 Aug 28, 2011 at 16:09:01 (UTC)
Goto Top
Zitat von @Scroller:
Was mache ich falsch?

Hi,

du must vom Ende der Liste anfangen, also von Count-1 nach 0
Member: dog
dog Aug 28, 2011 at 22:34:13 (UTC)
Goto Top
Oder so lange das Erste löschen bis die Liste leer ist face-wink
Member: Scroller
Scroller Aug 29, 2011 at 06:06:25 (UTC)
Goto Top
Hi Pulse,

danke, das war die Lösung.


SC
Member: Scroller
Scroller Aug 29, 2011 at 06:07:10 (UTC)
Goto Top
Hi Mathe172,

nicht das zweite sondern JEDES ZWEITE wird bei einem Durchlauf gelöscht

Also Liste:

A B C D E F G H I

Werden beim ersten durchlauf gelöscht: B D F H

beim nächsten werden dann D und H Gelöscht usw bis irgendwann die Liste leer ist.

Würd mich ja schon interessieren was da abläuft
Danke
SC
Member: mathe172
mathe172 Aug 29, 2011 at 14:16:17 (UTC)
Goto Top
Hallo,

dieses Schrittweise löschen der Elemente, wie ich es beschrieben habe, passiert in einem Schleifendurchgang. Also einmal klicken--> Einmal komplette Schleife (mit allen oben angeführten Schritten)

MfG,
Mathe172