Я работаю над пользовательскими функциями программирования VB.Net в файле DataGridView
. В настоящее время я пытаюсь разрешить пользователям обновлять данные, отображаемые в DataGridView
, путем редактирования того, что находится в ячейках.
Сейчас у меня есть способ определить, когда пользователь начинает редактировать ячейку:
Private Sub dataTable_CellBeginEdit(ByVal sender As Object, ByVal e As DataGridViewCellCancelEventArgs) Handles dataTable.CellBeginEdit
oldCellVal = dataTable.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
End Sub
Суть метода в том, чтобы сохранить старые данные в ячейке в памяти, чтобы потом их можно было восстановить, если пользователь решит не редактировать ячейку.
Теперь я не уверен, как настроить метод, когда пользователь завершает редактирование. Я знаю, что есть событие CellEndEdit
, для которого я могу создать обработчик, но как в этом методе определить, как они покинули ячейку?
Я хотел бы настроить его так, чтобы если мой пользователь нажал клавишу Enter, только тогда его редактирование было отправлено. Если они используют клавиши со стрелками или клавишу ESC для выхода из ячейки, вместо этого они получают сообщение «Вы хотите прекратить редактирование?» быстрый. Это звучит так, как будто мне нужно событие нажатия клавиши, но если я сделаю такое событие, как мне правильно определить ячейку, которая была изменена? Мне нужно знать индекс строки и столбца обновленной ячейки, чтобы правильно отправить изменения.
Итак, как мне это сделать? KeyPress
или CellEndEdit
? Или есть что-то еще, что я не учел?