El error puede suceder q el cambio no ocurre hasta q hayas seleccionado otra celda o otro check
digamos yo selecciono una fila esta va a estar en false y la chekeo entonces todavia va a estar false hasta q seleccione otra celda en la grilla y asi al reves
para esto prueba realizando lo siguiente
Código vb:
Ver originalPrivate Sub dgfacturas_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgfacturas.CellContentClick
If e.RowIndex < 0 Or Not e.ColumnIndex = 0 Then Exit Sub
If Convert.ToBoolean(dgfacturas.Rows(e.RowIndex).Cells(0).Value) Then
dgfacturas.Rows(e.RowIndex).Cells(0).Value = False
Else
dgfacturas.Rows(e.RowIndex).Cells(0).Value = True
End If
End Sub
esto es para q cuando seleccione el check de la grilla utomaticamente cambie su valor ala accion q realize chekeado o deschekeado