2011-02-03 7 views
5

I tiene un control DataGridView en una aplicación .NET que contiene una columna casilla de verificación. Me gustaría que el usuario pueda editar las casillas de verificación. El problema al que me estoy enfrentando es que no puedo detectar el estado de la casilla después de que el usuario la comprueba.Edición detección de estado casilla de verificación en DataGridView

Si la casilla de verificación se comprobó inicialmente, luego volverá comprobado en cuanto el DataGridViewCheckBoxCell obtiene foco. Pero, si vuelvo a hacer clic en la casilla y la deselecciono, aún así se devuelve marcado. A partir de ese punto, siempre volverá marcado independientemente del estado real de la casilla de verificación hasta que pierda el foco y lo vuelva a ganar.

Del mismo modo, si la casilla de verificación no estaba marcada originalmente, cuando obtiene el foco volverá sin marcar en el evento click sin importar cuál sea el estado de la casilla de verificación.

Aquí está mi código.

Private Sub grdTemplates_CellContentClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdTemplates.CellContentClick 
    Dim strValue As String = "" 
    Try 
     If Me.grdTemplates.Columns(e.ColumnIndex).Name = "colCurrentTemplate" Then 
      'The user clicked on the checkbox column 
      strValue = Me.grdTemplates.Item(e.ColumnIndex, e.RowIndex).Value 

      'THIS VALUE NEVER CHANGES WHILE THE DataGridViewCheckBoxCell HAS FOCUS 
      Me.lblTemplates.Text = strValue 
     End If 

    Catch ex As Exception 
     HandleError(ex.ToString) 
    End Try 

End Sub 

Gracias de antemano,

Mike

Respuesta

Cuestiones relacionadas