2014-08-28 1 views
1

Привет У меня есть DataGridView, который имеет таблицу данных для своего источника данных. У меня есть функция, которая использует метод DataTable.GetChanges(), и она прекрасно работает, когда я запускаю функцию, пока форма все еще активна; однако я помещаю эту функцию в событие закрытия формы, чтобы он проверял несохраненные изменения, когда форма закрыта, но по какой-то причине она всегда возвращается без изменений, когда я запускаю ее из метода закрытия.Обнаружение несохраненных изменений в DataGridView при закрытии формы VB.NET

Я предполагаю, что источник данных автоматически устанавливается при закрытии до того, как моя функция запускается, чтобы получить изменения.

В любом случае, чтобы предотвратить утечку источника данных? Я попытался сделать e.Cancel = True, когда в событии закрытия формы, а затем запустил мою функцию, и она по-прежнему не работает.

Любая помощь с этим была бы весьма признательна.

+0

как/почему приложение закрывается. есть еще один способ, и не все они ссылаются на эти события – Plutonix

+0

, когда вы нажимаете красный x в верхнем правом углу формы – slister

ответ

0

Я понял. Оказывается, это только не спасло изменения, когда я набрал что-то в DataGrid, не нажав enter, чтобы зафиксировать это редактирование. Это фактически не имело никакого отношения к закрытию формы.

1

Вы уверены, что находитесь в мероприятии Hand Me.FormClosing? Я знаю, что у меня были трудности с тем же, когда я использовал событие OnFormClose. Моя программа работает отлично, используя Me.FormClosing я все это проверить

если dataset.has изменения затем CallSaveLogic() конец, если

Оно должно быть одинаковым для DataTable.

+0

Да, я использую Me.FormClosing. Я совершенно в этом стесняюсь. – slister

+1

Есть ли где-нибудь, что вы принимаете изменения в datatable? Если до того, как этот код попал, кто-то запустил datatable.acceptchanges(), то ваши изменения не будут найдены. Кроме того, вам, вероятно, потребуется проверить объем используемого вами данных. – DoomVroom

+1

Я бы также проверил значения таблицы при отладке. Вы должны ударить точку останова и увидеть, что ваша таблица все еще существует в этой точке. Сделайте Shift + F9 в визуальной студии и посмотрите на свою таблицу, если она не равна нулю. – DoomVroom

 Смежные вопросы

  • Нет связанных вопросов^_^