Question sur les Listbox

promethee2003 Messages postés 38 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 10 décembre 2006 - 26 avril 2006 à 14:15
promethee2003 Messages postés 38 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 10 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...

6 réponses

promethee2003 Messages postés 38 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 10 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...
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
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 !

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
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
0
promethee2003 Messages postés 38 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 10 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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
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 !!
0
promethee2003 Messages postés 38 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 10 décembre 2006
26 avril 2006 à 14:48
Ok. Merci.
0