Code:
while (this.checkedListBox1.CheckedIndices.Count > 0)
{
this.checkedListBox1.Items.RemoveAt(checkedListBox1.CheckedIndices[0]);
}
Svaki put kada uradis "RemoveAt", broj item-a u checkedListBox1 se smanjuje za 1, a samim tim i indexi selektovanih item-a koji slede ispod, otuda su problemi ovog tipa.
Ako bolje pogledas metodu koji si napisao, ti u stvari brises prvo element sa indeksom 0 (bez obzira da li je checked), pa ti se Count smanjuje za 1, provera prolazi za dovoljno veliki broj checked item-a, pa zatim brises element sa indexom 1 (sto mu dodje item sa indexom 2 pocetnog niza) (opet bez obzira da li je checked), pa...
Sve u svemu, rezultat ove funkcije je nepredvidljiv i direktno zavisi i od broja checked item-a u odnosu na ukupan broj item-a, kao i od pozicija checked item-a, sto znaci da ti mozda nekad, uradi cak i tacno kako treba (ako check-iras dovoljno malo item-a odozgo), nekad moze da ti ostavi jednu gresku (kao sto si primetio), a nekad i da nijedan checked item ne izbaci iz liste (ako checked-ovanih item-a ima dovoljno malo i svi su na dnu liste).
[Ovu poruku je menjao marko1981 dana 27.09.2008. u 03:46 GMT+1]
[Ovu poruku je menjao marko1981 dana 27.09.2008. u 03:51 GMT+1]