我在DataGridView的一个列中有复选框。
现在我遇到了一个问题:当我在Checkbox上点击一次时,它会改变,但只是视觉上,在代码中它的值仍然设置为false。但是,如果我点击Checkbox然后点击我的datagridview上的其他任何地方(或者在代码中手动更改其值为true),它会将其值更改为true。
如何在单击后强制我的复选框更改值? (检查复选框实际上没有检查它很烦人。)
感谢您的帮助。
答案 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();
}