Проверьте, нажал ли пользователь Enter, чтобы покинуть DataGridViewCell

Я работаю над пользовательскими функциями программирования 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? Или есть что-то еще, что я не учел?


person Skitzafreak    schedule 10.08.2018    source источник
comment
Взгляните на этот вопрос с двумя ответами (stackoverflow.com/questions/50941246/). Оба ответа показывают, как обрабатывать и действовать при нажатии клавиш. Но этот ответ на С#. Если это похоже на то, что вам нужно, я могу помочь перевести это на VB.net   -  person JayV    schedule 11.08.2018