Avatar billede rwj_defcon1 Nybegynder
04. juli 2005 - 10:51 Der er 8 kommentarer

Checkbokse på et listview (Performance)

Hejsa... Jeg har en listview med checkbokse og har lvaet følgende kode til at markerer alle checkbokse

for(int i=0; i<listViewArtikler.Items.Count; i++) {
  listViewArtikler.Items[i].Checked=true;
}

Simpelt, og det virker også fint nok, men det giver nogle performance-problemer

Mit listview inderholder mange items (ca. 1000-5000), og det resulterer i at det tager minutter at udfører ovenstående kode. Nogen der kender en hurtigere metode til det?
Avatar billede cjensen Nybegynder
04. juli 2005 - 11:07 #1
Lav en BeginUpdate() først og en EndUpdate() når du er færdig med opdateringerne.
Avatar billede rwj_defcon1 Nybegynder
04. juli 2005 - 11:08 #2
Har allerede prøvet det, men det hjælper intet
Avatar billede rwj_defcon1 Nybegynder
04. juli 2005 - 11:15 #3
"Hjælper" kun ved add og remove (Ikke hurtigere, men pænere visning)
Avatar billede cjensen Nybegynder
04. juli 2005 - 11:23 #4
Jeg har prøvet følgende:
listView1.BeginUpdate();
for(int i=0 ; i < 10000 ; i++)
    listView1.Items.Add(i.ToString());
for(int i=0 ; i < listView1.Items.Count ; i++)
    listView1.Items[ i ].Checked = true;
listView1.EndUpdate();

Og det tager under 1 sec (938 ms) på min PC (Athlon 64 - 3000)
Avatar billede rwj_defcon1 Nybegynder
04. juli 2005 - 11:53 #5
hmmm... meget mystisk.. Har du sub-items og fullrowselect = true; Yderligere ligger mit som en Usercontrol... Men jeg synes ikke dette burde gøre det
Avatar billede cjensen Nybegynder
04. juli 2005 - 12:12 #6
FullRowSelect var false - jeg prøvede med true og det betød ikke noget nævneværdigt for performance.
Jeg er ikke med på subitems ( ? )
Avatar billede rwj_defcon1 Nybegynder
04. juli 2005 - 12:28 #7
Har lige selv testet om det var sub-items (Detaljer-view) og det var ikke det
Avatar billede rwj_defcon1 Nybegynder
04. juli 2005 - 12:43 #8
Har lige testet usercontrol-delen.... Det ser ud til at der er her problemet ligger... Add delen er der stort set ingen forskel, men checkAll er der stor forskel (Sekunder vs minutter)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester