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