Bonjour,

J'ai un datagridview avec pls colonnes dont une contient des checkbox.

Je voudrais pouvoir changer la couleur de fond d'une ligne suivant si la checkbox de la ligne est sélectionnée ou pas.

Mais cela ne marche pas.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
    Private Sub DataGridView1_CurrentCellDirtyStateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.CurrentCellDirtyStateChanged
 
        CheckBox_Etat_Change()
 
    End Sub
 
Sub CheckBox_Etat_Change()
Dim maCheck As new DataGridViewCheckBoxCell
        Dim maLigne As new DataGridViewRow
        Dim index As Integer = 0
        Dim boolCell As Boolean
        boolCell = maCheck.InheritedState
 
index = maCell.RowIndex
 
        If boolCell = True Then
 
            My_Frm_confAPI.DataGridView1.Rows.Item(index).DefaultCellStyle.BackColor = Color.Aqua
        Else
            My_Frm_confAPI.DataGridView1.Rows.Item(index).DefaultCellStyle.BackColor = Color.White
        End If
 
End Sub
Or j'ai un message d'erreur me disant que l'index est hors limite. en effet, sa valeur est égale à '-1', mais pourquoi? je ne devrai pas récupérer l'index de la ligne ???

J'ai un peu de mal avec les datagridview donc si quelqu'un peut me dire ce qui ne va pas, ce que j'ai mal fait et/ou des conseils...

Merci d'avance !!