none
rétablir la valeur d'une case à cocher dans une DataGridView RRS feed

  • Discussion générale

  • Bonjour,

    Quand je coche la case dans une DataGridView je dois exécuter un traitement CALL CALCUL

    Mais je veux tester une condition avant de lancer ce traitement IF OK =TRUE THEN CALL CALCUL

    Tel quel, le CALCUL est bien exécuté suivant la condition, mais s'il n'est pas exécuté, je veux rétablir la valeur de la case à cocher

    Par exemple je clique dans une case à cocher, je détecte que la condition n'est pas remplie Alors je n'exécute pas CALCUL et de plus, je remet la case à cocher a l'état initial

    C'est à dire si je clique sur une case non cochée, elle rest cochée, et vice-versa

    Comment faire pour rétablir la valeur ?

    Dans le code joint, je ne fait pas le traitement, mais je ne rétablit pas la valeur initiale ...

    Private Sub dgvFiche_CellContentClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles dgvFiche.CellContentClick
            If wFlagLoad = True Then Exit Sub
            Dim casesacocher = TryCast(dgvFiche.CurrentCell.OwningColumn, DataGridViewCheckBoxColumn)
            If Me.dgvFiche.Columns(dgvFiche.CurrentCell.ColumnIndex).Name <> "Choix" Then Exit Sub
            If casesacocher IsNot Nothing Then                   'si la colonne où le clique est effectué est du type DataGridViewCheckBoxColumn
                'MessageBox.Show("Avant contrôle " & dgvFiche.Item(e.ColumnIndex, e.RowIndex).Value)
                Me.wStatut = Convert.ToBoolean(dgvFiche.CurrentCell.EditedFormattedValue)     'la valeur de la case à cocher
                colIndex = e.ColumnIndex : rowIndex = e.RowIndex
                Me.wChoix = True
                wOK = True
                Call VerifImprime()
                If wOK = False Then
                    '   Il faut rétablir la saisie
                    wFlagLoad = True
                    If wStatut = True Then
                        'MessageBox.Show("Décoché " & e.RowIndex)
                        Me.dgvFiche.Item(e.ColumnIndex, e.RowIndex).Value = False
                    Else
                        'MessageBox.Show("Coché " & e.RowIndex)
                        Me.dgvFiche.Item(e.ColumnIndex, e.RowIndex).Value = True
                    End If
                    wFlagLoad = False
                    'Exit Sub
                Else
                    Call AfficheRecap()
                End If
            End If
        End Sub

    Cordialement

    SC



    Cordialement SC

    vendredi 30 août 2019 07:21