Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 2.388 pregleda

Najnovija ↓

C# checkedListBox.Items.RemoveAt() 26.09.2008. u 23:10 · pre 220 meseci #1
Koristim ovaj kod (dole) za brisanje chekiranih itema ali mi uvek ostaje jedan neobrisan item:

Code:

for (int i = 0; i <= checkedListBox2.CheckedItems.Count - 1; i++)
{
        checkedListBox2.Items.RemoveAt(i);
}


checkedListBox2.CheckedItems.Count vraca pravi broj itema ...

U cemu je problem ? Hvala.
Potpis
“If you think you are too small to make a difference, try sleeping with a mosquito.” - Dalai Lama
XIV
Re: C# checkedListBox.Items.RemoveAt() 27.09.2008. u 02:34 · pre 220 meseci
izmenjeno 2 puta, poslednji put marko1981 27.09.2008. u 03:51
  1. marko198127.09.2008. u 03:51zapis iz teksta poruke
  2. marko198127.09.2008. u 03:46zapis iz teksta poruke
#2
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).
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme