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 :

Compter cases cochées datagridview


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Points : 99
    Points
    99
    Par défaut Compter cases cochées datagridview
    Bonsoir,

    Dans ma datagridview, j’ai une colonne avec des checkbox. J’aimerai connaître le nombre de checkbox cochées dès que je clique sur l’une d’elles (quelle soit cochée ou non) pour limiter le nombre de cases cochées.

    Pour connaître le nombre total de cases cochées, j’ai mis ce code sur l’évènement CellClick de la datagridview mais ça m’affiche la messagebox pour chaque case cochée (imaginez si j’ai plusieurs dizaines de lignes...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim j As Int16 = 0
     
    For i As Integer = 0 To Me.MaDataGridView.RowCount - 1
       If Me.MaDataGridView(0, i).Value.Equals(True) Then
          j = CShort(j + 1)
       End If
    Next
     
    MessageBox.Show(CStr(j))
    Je voudrais que ça m'affiche le nombre de checkbox cochées qu'une seule fois (quand je coche ou décoche une checkbox) pour ensuite limiter leur nombre.

    Pouvez-vous me dire où est mon erreur et si je suis sur le bon évènement ?
    Merci de votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Je ne suis pas un expert, mais ceci fonctionne (en partant du principe que tu as un BindingSource sous ton DatagridView...), ici adm_UserBindingSource, ma colonen de CheckBox s'appelle "Actif", la sortie vers textBox4 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private sub CompteCoches()
    Dim count As Int16 = 0
            For Each row As DataRowView In Me.Adm_USERBindingSource.List
                If row!actif Then
                    count += 1
                End If
            Next
            Me.TextBox4.Text = count
    end sub
    Pour ce qui est du déclenchement, si tu veux prendre en compte la case que tu viens de cocher, il te faut utiliser Cellvalidated, il te faudra cocher puis te déplacer pour avoir le bon compte.

    Ici, ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Adm_USERDataGridView_CellValidated(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Adm_USERDataGridView.CellValidated
            If Adm_USERDataGridView.Columns(e.ColumnIndex).HeaderText = "Actif" Then
                compteCoches()
            End If
        End Sub
    Amicalement,

    JFB

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    D'abord, merci de m'avoir répondu.

    Ensuite, question sur la fonction. Dans ton exemple, il y a un BindingSource sur la datagridview. Or ce n'est pas mon cas (c'est une class).
    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For each... In Me.MaDataGridView.Datasource
    ...
    Mais j'ai un message d'erreur :
    'L'expression est du type 'Object' qui n'est pas un type collection.'
    Je ne vois pas quoi mettre à la place.

    2ème question : Dans quel évènement placer le code pour qu'il y ait une mise à jour du contenu de TextBox4 à chaque clic (false ou true) d'une checkbox ?

    J'ai essayé CellValidating et CellValueChanged mais je ne peux plus cliquer les checkbox...
    Merci de votre aide

Discussions similaires

  1. Comment compter les cases cochées sur une page ?
    Par Paul Reed Smith dans le forum Débuter
    Réponses: 4
    Dernier message: 24/03/2011, 12h03
  2. Réponses: 1
    Dernier message: 02/09/2008, 02h11
  3. Compter le nombre de cases cochées
    Par Equinoxe5 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/03/2008, 17h37
  4. Oui/Non (case à cochée) comme critère
    Par ivan7 dans le forum Access
    Réponses: 1
    Dernier message: 06/02/2006, 23h57
  5. Recupération de cases cochées sous access
    Par geefo dans le forum Access
    Réponses: 2
    Dernier message: 10/10/2005, 13h11

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