CheckedListBox, problème de compréhension [Résolu]

Signaler
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
-
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
-
Bonjour,

Je m'excuse par avance si je crée ce nouveau sujet au mauvais endroit.

Voilà, je me permets de demander de l'aide car j'ai un problème de compréhension avec l'outil checkedListBox.

Mon code permet d'ouvrir un fichier et de répertorier dans une checkedListBox des données, très bien.
Maintenant, j'aimerai effectué une action sur les données cochées dans la checkedListBox et non pas la donnée surlignée (comme le fait checkedListBox1.Text), par l'intermédiare d'un bouton par exemple.


(Bien entendu, j'ai testé plusieurs méthode, lorsque j'utilise :
- string str = checkedListBox1.Text cela prend en compte le text surligné de la checkedListBox et non pas les données cochées.
- string str = checkedListBox1.ItemCheck mais ça donne une erreur
- string str = checkedListBox1.Item de même erreur
...)

J'aimerai que ça prenne en compte un par un les éléments cochés et non pas le dernier élément surligné.

En espérant avoir été la plus claire possible. Merci de votre attention.

7 réponses

Messages postés
30
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
22 juin 2010
1
Pour le code ça donne :

foreach (string str in checkedListBox1.CheckedItems)
{
    // ton traitement sur str ici
}
Messages postés
30
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
22 juin 2010
1
Bonjour à toi,

Je n'ai pas très bien compris ce que tu voulais dire avec ton indicateur de pourcentage... est ce une progressbar que tu incrémentes après chaque traitement d'une case à cocher ?

Sinon j'ai testé un peu plus le code mis plus haut, avec le foreach, et je me suis rendu compte que parfois il me levait une exception parceque la liste parcourue était modifiée.

Il est donc préférable de changer le foreach par :

for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{
string str = checkedListBox1.CheckedItems[i].ToString();
}


Par contre je peux t'assurer que dans la variable str il n'y a bien qu'un et un seul élément checké.
Messages postés
30
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
22 juin 2010
1
Bonjour à toi babaOrhumette,

La solution à ton problème se trouve dans l'utilisation de la propriété checkedListBox1.CheckedItems



Bon développement !

( Je ne sais pas si j'ai fait une fausse manip', mais il m'était impossible de répondre à ce post en utilisant Chrome... )
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
1
Salut et merci Psych0 c'est sympa.
Je teste ça ce soir, et je tiens la communauté au courant.
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
1
Merci encotre, ta réponse est bonne cependant c'est ma question qui était un peu floue.

Ayant inséré un indicateur de pourcentage sur les opérations effectuées sur la donnée, je me rends compte que foreach (string...) agit sur toutes les données checkées en même temps et non pas une par une.

Serait-ce possible d'agir donnée checkée par donnée checkée?

C'est à dire que quand la première donnée checkée a été totalement "transformée" alors on agit sur la seconde donnée checkée et ainsi de suite.

Merci beaucoup de votre attention.
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
1
Merci, je ne peux tester pour le moment (je ne suis pas chez moi), mais dés que je peux je donne mon retour.
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
1
Réponse acceptée. Merci encore.