IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[CheckedListBox] selection en 1 click


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut [CheckedListBox] selection en 1 click
    Bonjour,

    je débute un peu avec .NET et surtout avec VB. j'ai une CheckedListBox avec des elements dedans. jusque la normal.

    Le truc c'est que part défaut il faut d'abord selectionner l'element avant de pouvoir le checker ou le dechecker.

    j'ai en parti resolu le probleme avec l'evenement click :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       Private Sub CheckedListBox_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckedListBox.Click
     
            If CheckedListBox.GetItemChecked(CheckedListBox.SelectedIndex) Then
                CheckedListBox.SetItemChecked(CheckedListBox.SelectedIndex, False)
            Else
                CheckedListBox.SetItemChecked(CheckedListBox.SelectedIndex, True)
            End If
     
        End Sub
    et avec l'evenement SelectedIndexChange :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CheckedListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckedListBox.SelectedIndexChanged
     
            If CheckedListBox.GetItemChecked(CheckedListBox.SelectedIndex) Then
                nb_file_to_copy = nb_file_to_copy + 1
            End If
     
            If Not CheckedListBox.GetItemChecked(CheckedListBox.SelectedIndex) Then
                nb_file_to_copy = nb_file_to_copy - 1
            End If
     
            Label1.Text = Str(nb_file_to_copy) + "/" + Str(nb_file_total)
        End Sub
    le souci et je ne sais pas pourquoi, c'est que lorsque je clique sur un element de la liste, il se selectionne, il se decoche ou se coche selon son etat initial. Puis si je reclique sur le meme element (qui est deja selectionné) il ne change pas d'état, par contre le nombre de fichier (variable nb_file_to_copy) se décrémente.

    je ne comprends pas trop... ya surement une logique mais la je suis un peu perdu dans les événements.

    Merci de votre aide

    Maxime

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ouhla

    un truc à savoir avec .net, il n'y a que très rarement du code à écrire pour des trucs de bas niveau dans le genre

    il y a une propriété CheckOnClick sur cet objet qui fait ce que tu veux faire


    et d'une manière générale, avant de faire quelque chose, regarde bien si ca n'existe pas, on est souvent surpris de tout ce que le framework peut faire
    reflector est d'ailleurs un outils pratique pour chercher ou comprendre le framework
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Citation Envoyé par sperot51
    ouhla

    un truc à savoir avec .net, il n'y a que très rarement du code à écrire pour des trucs de bas niveau dans le genre

    il y a une propriété CheckOnClick sur cet objet qui fait ce que tu veux faire


    et d'une manière générale, avant de faire quelque chose, regarde bien si ca n'existe pas, on est souvent surpris de tout ce que le framework peut faire
    reflector est d'ailleurs un outils pratique pour chercher ou comprendre le framework
    desolé dans les événements de mon checkedListBox je n'ai pas d'événement "CheckOnClick". je suis sous VS2005 (.NET2 normalement)

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    je ne parle pas d'évènement mais de propriété
    ton checklistbox posé, tu clic dessus, tu cherches dans les propriétés et checkonclick tu le mets à true

    comme ca sur un click ca coche tout de suite et ca renvoie l'evnement cochage
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Citation Envoyé par sperot51
    je ne parle pas d'évènement mais de propriété
    ton checklistbox posé, tu clic dessus, tu cherches dans les propriétés et checkonclick tu le mets à true

    comme ca sur un click ca coche tout de suite et ca renvoie l'evnement cochage
    ok en effet ca fonctionne beaucoup mieux. par contre j'ai toujours cette erreurs d'incrémentation de ma variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub CheckedListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckedListBox.SelectedIndexChanged
     
            If CheckedListBox.GetItemChecked(CheckedListBox.SelectedIndex) Then
                nb_file_to_copy = nb_file_to_copy + 1
            End If
     
            If Not CheckedListBox.GetItemChecked(CheckedListBox.SelectedIndex) Then
                nb_file_to_copy = nb_file_to_copy - 1
            End If
     
            Label1.Text = Str(nb_file_to_copy) + "/" + Str(nb_file_total)
        End Sub
    Lorsque je décoche une case d'un élément qui est déja selectionné, le compteur ne se décrémente pas, par contre si je la coche ca s'incrémente.

    je dois pas être dans le bon événement...

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    oui
    car si on clic en effet la selection change mais si on reclic au meme endroit on est sur la meme selection donc on ne repasse pas dans l'evenement

    utilise l'évenement ItemCheck qui se produit quand un item change d'état de check


    comme il se passe quelque chose qu'on ne comprends pas, il faut débugger, en mettant des points d'arret par exemple
    en mettant un point d'arret sur cet evenement, tu aurais vu que tu ne passais pas dedans et que ce n'était pas le bon
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MooTools] Mootools <select> sous IE - click Event
    Par dimebagplan dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 11/08/2009, 12h55
  2. [C#] [TreeView] [contextMenu] selection sur un click droit
    Par weejungle dans le forum Windows Forms
    Réponses: 25
    Dernier message: 03/08/2009, 11h52
  3. Select et évènement click
    Par Blowdi dans le forum jQuery
    Réponses: 4
    Dernier message: 22/04/2009, 13h37
  4. Élément SELECT et méthode click() (comment ouvrir une dropdown-list)
    Par Hibou57 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/07/2007, 09h38
  5. selection image avec click
    Par Tail dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/11/2006, 10h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo