Utiliser la multiselection d'un listbox [Résolu]

Signaler
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008
-
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008
-
Bonjour,

Petite question ou je plante...

J'utilise un listbox simplement en écrivant: " ligne = listbox1.text;

Mais j'ai un cas ou je dois utiliser la multiselection sur un listbox, et la comment puis-je faire pour récupérer les ligne que j'ai selectionné ?

Si j'utilise "listbox1.selectedItems, je me retrouve avec apparemment la collections de ces éléments, mais je ne sais pas comment l'utiliser... Dans les paramètres du selecteditems je n'ai apparement que le nombre d'éléments selectionné.

Si vous avez l'info, merci de votre aide.

4 réponses

Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
5
listbox1.SelectedItems[xxxx], tout simplement ^^

Comme c'est une collection, ca se parcourt avec un foreach:
foreach(object o in listbox1.SelectedItems)
{
   MessageBox.Show((string)o);
}

Ou "à l'ancienne"

for(int i=0; i<listbox1.SelectedItems.Count; i++)
{
    MessageBox.Show(listbox1.SelectedItem[i]);
}
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
Bonjour,

Comme tu le souligne, tu récupère une collections des éléments sélectionnés.
Pour connaitre la valeur text des éléments, il te faut donc la parcourir à l'aide d'un foreach

foreach (object item in listBox1.SelectedItems)
{
    MessageBox.Show(item.ToString());
}

"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein
Messages postés
296
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 août 2008

Bonjour,
Que veux tu faire de la collection d'objets recupérés ?
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008

c'est bon, merci bubbathemaster, ainsi que les autres, j'ai trouver mon bonheur dans vos réponses !!

voila ce que je voulais faire et ça marche

AjoutTest();

ligneTemp =

"";

foreach (
object list1
in LBListContGachet1.SelectedItems){

//Remplacement des objets 'ctc1' par les valeurs correspondantesligneTemp = ligneTemp + ligne1.Replace(

"contact1", (
string)list1);}

ligneaEcrir = ligneTemp;

ligneTemp =

"";

foreach (
object list2
in LBListContGachet2.SelectedItems){

//Remplacement des objets 'ctc2' par les valeurs correspondantesligneTemp = ligneTemp + ligne2.Replace(

"contact2", (
string)list2);}

ligneaEcrir = ligneaEcrir + ligneTemp;

//On regroupe les 2 ligne, soit les param A() et B()

//Ajout de la ligneLbContRepoGach.Items.Add(ligneaEcrir);