Supprimer toute une selcetion d'items dans un ListBox

Résolu
floptwo Messages postés 24 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 2 octobre 2006 - 5 juin 2006 à 04:16
floptwo Messages postés 24 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 2 octobre 2006 - 7 juin 2006 à 16:26
J'ai créer un bouton afiin de supprimer toutes les ligne de ma ListBox : lb_imgARedim_list.
Rien a faire, il veut bien supprmier une ligne selectionnée mais pas plusieurs, comment faire ?

       private void b_imgARedim_list_delLines_Click(object sender, EventArgs e)
        {
            int count = lb_imgARedim_list.SelectedItems.Count;
            if (count == 1)
            {
                lb_imgARedim_list.Items.Remove(lb_imgARedim_list.SelectedItem);
            }
            else if (count > 1)
            {

                lb_imgARedim_list.Items.Remove(lb_imgARedim_list.SelectedItems);
                /*
                for (int i = 0; i < count ; i++)
                {
                    lb_imgARedim_list.Items.Remove(lb_imgARedim_list.SelectedItems[i]);
                }

            }
        }

7 réponses

floptwo Messages postés 24 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 2 octobre 2006 7
5 juin 2006 à 13:48
J'ai trouver la solution !



C'était tout bête !



Lorsque plusieurs éléments etaient selectionnés et que j'en supprimais un, le premier etait supprimé et la selection concervée. Il suffisait de répéter l'action autant de fois qu'il y a d'éléments sélectionnés.





int count = lb_imgARedim_list.SelectedItems.Count;



if (count > 0)



{



    for (int i = 0; i < count; i++)



    {



        lb_imgARedim_list.Items.Remove(lb_imgARedim_list.SelectedItem);



    }



}
3
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
7 juin 2006 à 14:38
Ton if(count > 0) est inutile vu que le test est refait dans la boucle if.

De plus, je ne pense pas que cette solution soit la plus propre. Il est courament admis ce code, ou tu recupere d'abord les elements selectionnés, pour ensuite les supprimer préciesemment. :

                ListBox.SelectedIndexCollection indices = lstMaListe.SelectedIndices;
                for (int i = indices.Count - 1; i >= 0; i--)
                {
                    lstMaListe.Items.RemoveAt(indices[i]);
                }
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
5 juin 2006 à 09:26
Salut,
Tu peux jeter un oeil sur ce topic qui devrait t'aider.

<hr size= "2" /> VC# forever
=13319
0
floptwo Messages postés 24 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 2 octobre 2006 7
5 juin 2006 à 13:25
Salut !
Merci pour ton aide ! Je vais faire avec ce que tu propose.
Mais j'ai une question. Tu ne vouloir utiliser ce control que si c'est pour un affichage ou un lecture, j'aimerais savoir ce que tu entends par là et qu'est ce que tu propose.
0

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

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
5 juin 2006 à 13:48
Moui, je ne sais pas pourquoi, je ne raffole pas trop de ce Control...
Moi j'utilise des ListView ou des Combo principalement, je trouve qu'ils sont visuellement plus pratique ... Mais bon, si tu as besoin d'une ListBox, utilise une ListBox

<hr size= "2" /> VC# forever
=13319
0
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
7 juin 2006 à 14:39
Ton if(count > 0) est inutile vu que le test est refait dans la boucle if.

... Dans la boucle for je voulais dire.
0
floptwo Messages postés 24 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 2 octobre 2006 7
7 juin 2006 à 16:26
Salut !
Merci de ta remarque mais j'ai utilisé une autre alternative avec While.
(j'ai changer ma listbox en listview mais c'est la meme chose)

        while (listView1.SelectedItems.Count > 0)
            {
                    listView1.Items.Remove(listView1.SelectedItems[0]);
            }

Qu'en pense tu ?
0
Rejoignez-nous