我的DataGridView
中有一列,其中DataGridViewCheckBoxColumn
为列模板。当用户选中该复选框时,如果某些条件失败,我需要以编程方式取消选中它。我已经这样做了,但是这个取消选中的逻辑只有在我手动从单元格更改焦点后才会生效。我尝试以编程方式更改焦点但不起作用。对此有什么解决方案吗?
答案 0 :(得分:1)
只需将DataGridViewCell.Value
属性的值设置为false
(或true
):
((DataGridViewCheckBoxCell)row.Cells[CheckBoxColumn.Index]).value = false;
答案 1 :(得分:1)
我找到了答案,代码更改很少。我使用了datagridview的取消编辑功能。对于之前触发的复选框值更改,我在里面使用此代码 CurrentCellDirtyStateChanged事件。
CommitEdit(DataGridViewDataErrorContexts.Commit)
现在我把它改成了。
CommitEdit(DataGridViewDataErrorContexts.CurrentCellChange)
并打电话给
CancelEdit()
回滚更改。
答案 2 :(得分:1)
最近我遇到了类似的问题。将Cell Value设置为false或使用TrueValue和FalseValue(对于DataGridViewCheckBoxCell)在我的情况下失败。
最后,我设法通过简单的DataGridView方法实现我想要的功能(如果某些条件失败,则取消选中):
dataGridView1.CancelEdit()
希望它有所帮助。