Tengo un datagridview con varias columnas, una de las cuales contiene checkbox.
He añadido el evento CellValueChanged y me detecta los cambios que se hacen en las todas las columnas menos la checkbox. ¿Cual es el evento que detecta los cambios de estado de los checkbox del datagridview?
CellValueChange sólo funciona cuando se trabaja en modo virtual con el DataGridView. Deberías hacer algo así:
Private Sub DBGrid2_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DBGrid2.CellClick
Select Case e.ColumnIndex
Case 1 'o la columan que tenga el checkbox
Dim Celda As DataGridViewCheckBoxCell = DBGrid2(e.ColumnIndex, e.RowIndex)
Dim CE As CheckState = Celda.Value
If CE = CheckState.Checked Then Celda.Value = CheckState.Unchecked Else Celda.Value = CheckState.Checked
End Select
Gracias por la ayuda pero esto cambia el valor haciendo click en cualquier sitio de la celda. Yo solo quiero que cambie cuando se cambia el estado del checkbox.
¿Cómo se puede hacer?
No existe ningún evento que salte al cambiar el valor del checkbox en una columna de datagridview, al menos que yo sepa. La única forma de controlarlo es mediante los comandos que te comenté.
Vale pues entonces lo haré de esa forma. Gracias por tu ayuda
en el evento CellContentClick preguntas si la celda es del tipo objecto DataGridViewCheckBoxCell, si es asi ahi haces lo que quieras...y en internet hay varios ejemplos de como hacerlo..