Completing cell edit in DataGridView

I'm using c# 4.0. I have a DataGridView on a form.

When the data changes (via CellValueChanged), a Save button is enabled that lets the user save, after which the button is disabled.

However, the user can type something into a cell but leave the cursor in the cell; effectively not committing the cell (CellValueChanged does not fire). Is there some way I can shift the mode from cell editing so that the value is committed when Save is clicked?
LVL 1
BlearyEyeAsked:
Who is Participating?
 
BlearyEyeAuthor Commented:
That pointed me in the right direction. Just doing the EndEdit() resulted in losing the changes. I had to end the edit on the current row, then the data grid, then the binding source.

this.DataGridView1.CurrentRow.DataGridView.EndEdit();
this.DataGridView1.EndEdit();
bindingSource1.EndEdit();
taDevices.Update(tblDevices1.devices);

Open in new window


See disucssion at http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/f9b92a39-2c7d-4c33-b89d-8d58e391eb6a/
0
 
käµfm³d 👽Commented:
You can try calling the EndEdit() method of the DataGridView upon leaving a cell.
private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
    this.dataGridView1.EndEdit();
}

Open in new window

0
 
käµfm³d 👽Commented:
Cool, glad you found an answer  :)
0
 
BlearyEyeAuthor Commented:
It pointed me in the right direction but needed more
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.