Да, у меня такой же опыт.Я использую Visual Studio 2010 и .NET Framework v.4.0.Я работаю с элементом управления DataGridView, который связан с DataTable.
Если пользователь пытается закрыть форму, пока значение ячейки все еще находится в режиме редактирования, я хочу, чтобы DataGrid завершил режим редактирования и спросил пользователя,он хочет сохранить или потерять изменения.
Это код, который работает для меня:
if (dgv.IsCurrentCellInEditMode)
{
dgv.EndEdit();
updatedData.Rows[dgv.CurrentCell.RowIndex].EndEdit();
}
if (updatedData.GetChanges() != null && updatedData.GetChanges().Rows.Count > 0)
{
// if there are changes, update the dataset
}
Я хочу отметить, что мне нужно было вызвать оба - EndEdit () в DataGridViewчтобы закончить редактирование.Затем вызовите EndEdit () в DataTable, чтобы пометить строку как «измененную».