2011-02-03 4 views
5

.Netアプリケーションにチェックボックス列を含むDataGridViewコントロールがあります。ユーザーがチェックボックスを編集できるようにしたいと思います。私が実行している問題は、ユーザーがチェックボックスをチェックした後、チェックボックスの状態を検出できないということです。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 

おかげで、

マイク

答えて

関連する問題