文档窗口在Visual Studio中焦点时的事件

时间:2015-03-12 03:08:38

标签: c# visual-studio-2013 visual-studio-extensions

我在Visual Studio中有一个可扩展性项目,我需要使用在visual studio编辑器中从一个窗口更改为另一个窗口时触发的事件,我的问题是:

我创建了一个工具窗口,显示一些图表,该图表依赖于可编辑文件,当我保存可编辑文件时,我的工具窗口更新信息,但是当有多个可编辑文件打开时我在它们之间切换我希望工具窗口也更新信息。所以:

我希望在Visual Studio中切换窗口,文件或文档时触发事件,以便我可以使用它来执行工具窗口的更新代码。我有什么可以做的吗?

我刚刚在这里阅读了这个问题,但我没有在那里找到解决方案: Are there any document window focus events?

1 个答案:

答案 0 :(得分:4)

您可以订阅EnvDTE.WindowEvents.WindowActivated事件:

using EnvDTE;
using Microsoft.VisualStudio.Shell;

private class MyClass
{
    private DTE dte;

    public MyClass()
    {
        dte = Package.GetGlobalService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
        dte.Events.WindowEvents.WindowActivated += OnWindowActivated;
    }

    private void OnWindowActivated(Window gotFocus, Window lostFocus)
    {
        throw new NotImplementedException();
    }
}

例如,请参阅1. Display document path of the active window in the status bar示例代码。