【发布时间】:2019-04-18 12:41:43
【问题描述】:
我有一个带有 DataGridViewCheckBoxColumn 列的 DataGridView。单元格大小大于复选框,因此为了方便用户使用,我希望 CellClick 事件的行为就像复选框本身被单击一样。
目前我在 CellClick 事件中这样做:
If e.ColumnIndex = dgv.Columns("CONFIRM").Index Then
If CBool(dgv.Item("CONFIRM", e.RowIndex).Value) = True Then
dgv.Item("CONFIRM", e.RowIndex).Value = False
Else
dgv.Item("CONFIRM", e.RowIndex).Value = True
End If
End If
但是,直到单元格失去焦点后,复选框才会真正改变状态。我已经看到很多关于处理不同事件(CellValueChanged、CurrentCellDirtyStateChanged)(例如http://www.codingeverything.com/2013/01/firing-datagridview-cellvaluechanged.html)和提交更改的建议:
If dgvDownloads.IsCurrentCellDirty Then
dgvDownloads.CommitEdit(DataGridViewDataErrorContexts.Commit)
End If
但这不起作用,dgv 会闪烁,但复选框不会更改选中状态。
当单击包含单元格时,如何强制 DataGridViewCheckBoxColumn 中的复选框更新其状态?
【问题讨论】:
标签: vb.net datagridview