捕获窗口关闭事件

use*_*876 13 c# visual-studio-addins window envdte

我想捕获在Visual Studio 2008 IDE中关闭编辑器窗口(选项卡)的事件.当我使用dte2.Application.Events.get_CommandEvents(null,0).BeforeExecute我成功捕获了这样的事件:

  • File.Close
  • File.CloseAllButThis
  • File.Exit
  • Window.CloseDocumentWindow等.

如果窗口中的代码不可接受,我会停止该事件(CancelDefault = true).

但如果我点击右侧的"X"按钮,"保存更改"; 出现对话框,关闭编辑器窗口的选项卡,我没有任何捕获的事件.在这种情况下,我可以捕获WindowClosing事件,但无法取消该事件.

处理"x"按钮点击和停止事件是否合理?

Han*_*son 0

如果您愿意使用一些 Windows API 代码,您也许可以使用该函数设置一个钩子SetWindowsHookEx来拦截WM_CLOSE,WM_QUITWM_DESTROY