Buongiorno.
Non riesco a fare in modo che una cella di una colonna di tipo CheckBoxColumn cambi colore di background quando viene cliccata, cioè quando cambia il suo valore. Vorrei che il colore cambiasse subito, non quando si passa ad un'altra cella.
Riporto un estratto dei numerosi tentativi fatti:
Private Sub dgv_CurrentCellDirtyStateChanged(sender As Object, e As EventArgs) _
Handles dgv.CurrentCellDirtyStateChanged
If dgv.CurrentCell.ColumnIndex = 3 Then
dgv.CommitEdit(DataGridViewDataErrorContexts.Commit)
End If
End Sub
Private Sub dgv_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) _
Handles dgv.CellValueChanged
If e.ColumnIndex = 3 Then
Dim checkCell As DataGridViewCheckBoxCell = CType(dgv.Rows(e.RowIndex).Cells(3), DataGridViewCheckBoxCell)
checkCell.Style.BackColor = IIf(checkCell.Value, Color.Red, Color.Green)
End If
End Sub
Il CommitEdit dovrebbe forzare l'esecuzione di CellValueChanged, e in effetti questo avviene, ma la variazione di colore avviene solo quando ci si sposta su un'altra cella.
Ho fatto dei tentativi anche con il metodo Invalidate, ma senza successo.
Qualche suggerimento? Grazie.