Я хочу захватить события, закрывающие окно редактора (вкладку) в среде Visual Studio 2008 IDE. Когда я использую dte2.Application.Events.get_CommandEvents (NULL, 0) .BeforeExecute I успешно захватили такие события:Захват окна закрыть событие
- file.close
- File.CloseAllButThis
- File.Exit
- Window.CloseDocumentWindow и другие.
Если код в окне неприемлем, я останавливаю событие (CancelDefault = true).
Но если я нажму кнопку «X» с правой стороны, «Сохранить изменения»; диалоговое окно, вкладка с окном редактора закрывается, и у меня нет никаких захваченных событий. В этом случае я могу захватить событие WindowClosing, , но не может отменить событие.
Можно ли использовать кнопку «x» для нажатия кнопки и остановки?
Если вы нажмете «X», но «Сохранить изменения» не появится, проблема не исчезнет? –
Есть ли причина, по которой вы не выполняете валидацию, и так в методах диалога «Сохранить изменения»? Как правило, события, закрывающие окно, проверяют изменения и инициируют запрос «Сохранить изменения». Метод «Сохранить изменения» затем вернет True, если проверка была хорошей, и сохранение было успешным, или False, если проверка не прошла ... Затем это значение будет отправлено обратно в обработчик события закрытия окна, True, чтобы продолжить и закрыть окно или False, чтобы отклонить его и ничего не делать. – ewall