我想在Visual Studio 2008 IDE中捕获关闭编辑器窗口(选项卡)的事件。 我用的时候 dte2.Application.Events.get_CommandEvents(null,0).BeforeExecute 我成功地抓住了这样的事件:
如果窗口中的代码不可接受,我会停止该事件(CancelDefault = true)。
但如果我点击右侧的“X”按钮,“保存更改”;出现对话框,选项卡用 编辑器窗口关闭,我没有任何捕获的事件。在这种情况下,我可以捕获WindowClosing事件, 但无法取消活动。
处理“x”按钮点击和停止事件是否合理?
答案 0 :(得分:1)
在C#中它将是这样的:你添加Closing事件处理程序然后
void MyWindow_Closing(object sender, CancelEventArgs e)
{
if(something)
e.Cancel = true; //<- thats the magic part you want
}
答案 1 :(得分:0)
如果您愿意使用某些Windows API代码,则可以使用SetWindowsHookEx
功能设置一个钩子来截取WM_CLOSE
,WM_QUIT
和WM_DESTROY
答案 2 :(得分:0)
我建议,检查处理MDI Child窗口事件的行!!
您所引用的编辑器选项卡基本上是MDI子窗口的实例。
希望这有帮助!