チェックボックス列を含む .Net アプリケーションに DataGridView コントロールがあります。ユーザーがチェックボックスを編集できるようにしたいと思います。私が直面している問題は、ユーザーがチェックした後、チェックボックスの状態を検出できないことです。
チェックボックスが最初にチェックされていた場合、DataGridViewCheckBoxCell がフォーカスされるとすぐにチェックが返されます。しかし、チェックボックスをもう一度クリックしてチェックを外しても、チェックされたままになります。その時点から、チェックボックスの実際の状態に関係なく、フォーカスが失われて再び取得されるまで、常にチェックされた状態に戻ります。
同様に、チェックボックスが最初にチェックされていなかった場合、チェックボックスが実際にどのような状態であるかに関係なく、チェックボックスがフォーカスされるとクリックイベントでチェックされていない状態に戻ります。
これが私のコードです。
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
前もって感謝します、
マイク