Проверете дали потребителят е натиснал 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/). И двата отговора показват как да работите и да действате при натискане на клавиши. Но този отговор е в C#. Ако изглежда близо до нещо, от което се нуждаете, мога да помогна да го преведете на VB.net   -  person JayV    schedule 11.08.2018