Здесь есть похожий вопрос Почему не сработало событие CellEndEdit DataGridView , поэтому, пожалуйста, не говорите мне, что на него уже был дан ответ.:-) Это решение направлено на то, чтобы щелкать вне таблицы, а не вставлять из последней ячейки в строке.
Я ввожу данные в новую строку в представлении данных.Когда я покидаю ряд, я проверяю, является ли он новым.Если это новая строка, я добавляю данные в базу данных.Однако, когда я вкладываю из последней ячейки, запускается RowLeave и последняя ячейка в строке пуста.Другие ячейки показывают данные, но не последние.
Я проверил, что LeaveRow срабатывает перед CellEndEdit при переходе из последнего поля.
Если я ввожу данные в последнюю ячейку и щелкаю по предыдущей ячейке, ТО затем покидаю строку, она захватывает данные из последней ячейки.
Как заставить значение, введенное мной впоследняя ячейка, которая будет сохранена ДО события RowLeave?Я сохраняю новую строку в событии RowLeave.
Вот код для события RowLeave
Private Sub dgVisa_RowLeave(sender As Object, e As DataGridViewCellEventArgs) Handles dgVisa.RowLeave
Dim row As DataGridViewRow = dgVisa.CurrentRow
If dgVisa.IsCurrentRowDirty Then
MsgBox(row.Cells(0).FormattedValue)
MsgBox(row.Cells(1).FormattedValue)
MsgBox(row.Cells(2).FormattedValue)
MsgBox(row.Cells(3).FormattedValue)
MsgBox(row.Cells(4).FormattedValue)
MsgBox(row.Cells(5).FormattedValue)
If gbolUserAddedRow = True Then
Dim AddRecord As New GetMSCADPaymentDetailsTableAdapters.uspMSGetMSCADBankDetailsByCreditCardTypeIdentTableAdapter
AddRecord.Insert(#9/1/2018#,
1,
5,
1,
4)
AddRecord.Insert(CDate(row.Cells(1).FormattedValue),
1,
CDbl(row.Cells(3).FormattedValue),
CDbl(row.Cells(4).FormattedValue),
CDbl(row.Cells(5).FormattedValue))
gbolUserAddedRow = False
End If
End If
End Sub