2017-09-05 3 views
2

フォームロード時にグリッドチェックボックスの値を変更しようとしていますが、問題は実行してコードをトレースしても問題ありませんが、グリッド上では何も変わりません。フォームの読み込み時にgridviewのチェックボックスの値を変更する方法は?

コードブロック:

For Each row As DataGridViewRow In DataGridView3.Rows 
    Dim c As Integer 
    c = row.Cells(4).Value 
    If c = 2 Then 
     row.Cells(selctWin.Name).Value = True 
    Else 
     row.Cells(selctWin.Name).Value = False 
    End If 
Next 
+0

forループとチェックの後に、この 'DataGridView3.CommitEdit(DataGridViewDataErrorContexts.Commit)'を追加することができます。 –

+1

チェックボックス列の値をフロントエンドに代入するのではなく、SQLクエリーに 'bit'列を追加し、列' c'に基づいて 'true'または' false'の値を割り当てます。これは、フロントエンドの余分なforループを減らします。 –

+1

私のコードを 'DataGridView3_CellContentClick'イベントに追加してみてください。 –

答えて

1

は、この下のコードを試してみてください:セルの内容が編集モードを終了せずに(ここではcheckboxCell)をクリックしたときに

Private Sub DataGridView3_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) 
    DataGridView3.CommitEdit(DataGridViewDataErrorContexts.Commit) 
End Sub 

これは、変更がコミットできるようになります。 CommitEditメソッドの詳細についてはdocumentationを参照してください。

関連する問題