promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006
-
26 avril 2006 à 14:15
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006
-
26 avril 2006 à 14:48
Bonjour a tous.
J'ai un petit probléme assez embettant tout de même.
Dans mon prog j'utilise une listbox avec des check(Chaque entrée de la liste peut ainsi être coché) et je cherche le moyens de cocher la totalité de la liste avec un seul bouton. Et inversement pour decocher toute la liste.
J'ai deja essayé par boucle en les cochant un par un :
for i=0 to list1.liscount
list1.list(i).checked=true
next i
Mais le resultat est beaucoup trop long (plusieurs secondes).
Donc si quelqu'un à une solution quasi-instantané je suis preneur...
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006 26 avril 2006 à 14:17
Je repost la question precedente qui s'est mal affiché (en tout cas chez moi)
Bonjour a tous.
J'ai un petit probléme assez embettant tout de même.
Dans mon prog j'utilise une listbox avec des check(Chaque entrée de la liste peut ainsi être coché) et je cherche le moyens de cocher la totalité de la liste avec un seul bouton. Et inversement pour decocher toute la liste.
J'ai deja essayé par boucle en les cochant un par un :
for i=0 to list1.liscount
list1.list(i).checked=true
next i
Mais le resultat est beaucoup trop long (plusieurs secondes).
Donc si quelqu'un à une solution quasi-instantané je suis preneur...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 26 avril 2006 à 14:29
As-tu essayé en rendant la listbox invisible avant de cocher toutes les entrées, puis en la rendant de nouveau visible à la fin de l'opération ? Ca devrait te faire gagner de précieuse seconde : ce genre de lenteur est sûrement dû au raffraichissement du contrôle qui se fait à chaque nouveau cochage !
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 26 avril 2006 à 14:35
Il n'y a pas bcp d'autre solution pourtant ! C'est que ta liste doit être tres tres longue !
Quelques propositions :
1- Faire la boucle For de 0 à List1.ListCount - 1 car sinon ... big bug !
2- Juste avant le For, rendre la list invisible par un List1.Visible Fals et la remettre visible juste après la boucle par un List1.Visible True. En effet, ce n'est pas de cocher les items de la liste qui prend du temps, c'est de laisser Windows afficher la coche à chaque tour de boucle.
3- Ne pas conserver le nom par défaut des controles, comme "List1". Toujorus renommer les controles avec des noms parlants, comme "lstMachinChose" par exemple
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006 26 avril 2006 à 14:43
Ok. Je vais essayé de rendre la liste invisible durant le processus... Juste une chose encore : quel interet de changer le nom du controle ? Cela accelére le traitement ?
En tout cas merci pour la rapidité des reponses...
Vous n’avez pas trouvé la réponse que vous recherchez ?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 26 avril 2006 à 14:48
Le changement de nom des controles n'a rien a voir avec la vitesse d'exec !! Plutot avec la vitesse avec laquelle tu vas t'y retrouvé dans ton projet et ton code lorsque tu auras 12 listboxes, 120 TextBoxes.
Si tu as dans ton code des Listbox1, listbox2, listbox3, textbox1 texxtbox99 etc .... tu sera totalement perdu !!