Question

I have checkboxes in one of my columns in DataGridView.

And now I have a problem: When I click once on Checkbox it changes but only visualy, in code its value is still set to false. But if I click on Checkbox and then anywhere else on my datagridview (or change its value manually in code on true) it changes its value on true.

How can I force my checkbox to change value after one click? (it's annoying that checking checkbox actually does not check it).

Thanks for any help.

Was it helpful?

Solution

Changes to underlying data source are applied when the controls lose the focus. You can handle it explicitly in CellContentClick event.

Please read the linked documentation thoroughly, as it describes similar scenarios, and discusses different type of grid cells.

Found also this. Exactly the same problem.

OTHER TIPS

Lets assume like you have a form with name Form1

A DataGridView in it name dgv

A CheckBoxColumn in it with ColumnIndex = 5

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

Commit the change for datagrid within the event for that specific column

private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 5) dgv.EndEdit();
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top