1

我的列中有一个DataGridViewDataGridViewCheckBoxColumn模板。当用户选中复选框时,如果它不符合某些条件,我需要以编程方式取消选中它。我已经这样做了,但是这个取消选中的逻辑只有在我手动更改单元格的焦点后才会生效。我尝试以编程方式更改焦点,但没有奏效。有什么解决办法吗?

4

3 回答 3

2

我通过很少的代码更改找到了答案。我使用了datagridview的取消编辑功能。对于之前要触发的复选框值更改,我在 CurrentCellDirtyStateChanged 事件中使用了此代码。

CommitEdit(DataGridViewDataErrorContexts.Commit) 

现在我把它改成了。

CommitEdit(DataGridViewDataErrorContexts.CurrentCellChange) 

并称

CancelEdit()

回滚更改。

于 2012-11-07T06:58:03.237 回答
1

最近我有类似的问题。在我的情况下,将单元格值设置为 false 或使用 TrueValue 和 FalseValue(对于 DataGridViewCheckBoxCell)失败。

最后,我设法通过简单的 DataGridView 方法实现了我想要的(取消选中某些条件是否失败):

dataGridView1.CancelEdit()

希望能帮助到你。

于 2014-04-09T11:51:58.560 回答
1

只需将您的DataGridViewCell.Value财产的价值设置为false(或true):

((DataGridViewCheckBoxCell)row.Cells[CheckBoxColumn.Index]).value = false;
于 2012-11-07T05:21:31.730 回答