Vb.net 在DataGridView中检测复选框状态时出现问题

Vb.net 在DataGridView中检测复选框状态时出现问题,vb.net,datagridview,datagridviewcheckboxcell,Vb.net,Datagridview,Datagridviewcheckboxcell,我在.Net应用程序中有一个DataGridView控件,它包含一个复选框列。我希望用户能够编辑复选框。我遇到的问题是,在用户选中复选框后,我无法检测它的状态 如果复选框最初是选中的,那么一旦DataGridViewCheckBoxCell获得焦点,它将返回选中状态。但是,如果我再次单击复选框并取消选中它,那么它仍然返回checked。从那时起,无论复选框的实际状态如何,它都将始终返回checked,直到它失去焦点并再次获得它为止 同样,如果复选框最初未选中,那么当它获得焦点时,无论复选框的实际

我在.Net应用程序中有一个DataGridView控件,它包含一个复选框列。我希望用户能够编辑复选框。我遇到的问题是,在用户选中复选框后,我无法检测它的状态

如果复选框最初是选中的,那么一旦DataGridViewCheckBoxCell获得焦点,它将返回选中状态。但是,如果我再次单击复选框并取消选中它,那么它仍然返回checked。从那时起,无论复选框的实际状态如何,它都将始终返回checked,直到它失去焦点并再次获得它为止

同样,如果复选框最初未选中,那么当它获得焦点时,无论复选框的实际状态如何,它都将在单击事件中返回未选中状态

这是我的密码

    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
提前感谢,


Mike

在代码中包含以下内容:

Sub dataGridView1_CurrentCellDirtyStateChanged(ByVal sender As Object, ByVal e As EventArgs) Handles dataGridView1.CurrentCellDirtyStateChanged
    If dataGridView1.IsCurrentCellDirty Then
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
    End If
End Sub
资料来源: