ListView et checkbox, contrainte de sélection [Résolu]

Signaler
Messages postés
102
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 janvier 2013
-
Messages postés
102
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 janvier 2013
-
Bonjour à tous,

J'ai actuellement une ListView en mode Détails !
dans cette ListView j'ai plusieurs objets qui sont cochable par des Checkbox, parcontre j'aimerais que l'utilisateur ne puisse cocher qu'une seule chexkbox!
Si il en coche une puis une deuxième, la première se décoche automatiquement!

j'ai bien essayé avec une procédure mais j'ai pas vraiment réussit!

Si quelqu'un avait une petite idée ou une piste pour m'éclairer merci de me la faire partager!

Merci.
A voir également:

2 réponses

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Bonjour,

Il te suffit pour cela d'enregistrer l'événement ItemCheck de ta CheckedListBox et d'implémenter le code suivant:

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
            if (e.NewValue != CheckState.Checked)
                return;

            for (int i = 0; i < checkedListBox1.Items.Count; i++)
            {
                if (i != e.Index)
                {
                    checkedListBox1.SetItemChecked(i, false);
                }
            }
}

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
102
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 janvier 2013

Merci beaucoup billou_13,

J'ai dû changer un petit truc pour l'adapter à ma ListView, donc je met le code final pour ceux qui serait intéressé!

private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (e.NewValue != CheckState.Checked)
                return;

            for (int i = 0; i < listView1.Items.Count; i++)
            {
                if (i != e.Index)
                {
                    listView1.Items[i].Checked = false;
                }
            }           
        }

Voilà, Merci encore!!