检查后,DataGridView中的复选框不会更改其值

时间:2013-04-15 11:50:46

标签: c# winforms datagridview datagridviewcheckboxcell

我在DataGridView的一个列中有复选框。

现在我遇到了一个问题:当我在Checkbox上点击一次时,它会改变,但只是视觉上,在代码中它的值仍然设置为false。但是,如果我点击Checkbox然后点击我的datagridview上的其他任何地方(或者在代码中手动更改其值为true),它会将其值更改为true。

如何在单击后强制我的复选框更改值? (检查复选框实际上没有检查它很烦人。)

感谢您的帮助。

2 个答案:

答案 0 :(得分:7)

当控件失去焦点时,将应用对基础数据源的更改。 您可以在CellContentClick事件中明确处理它。

请仔细阅读链接文档,因为它描述了类似的场景,并讨论了不同类型的网格单元。

还找到this。完全相同的问题。

答案 1 :(得分:1)

让我们假设您有一个名称为 Form1

的表单

名称为 dgv

的DataGridView

其中的CheckBoxColumn为ColumnIndex = 5

public Form1()
{
    InitializeComponent();
    dgv.CellContentClick += dgv_CellContentClick;
}

在该特定列的事件中提交对datagrid的更改

private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 5) dgv.EndEdit();
}