Работя във 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
? Или има нещо друго, което не съм обмислил?