C# 在Visual Studio中聚焦文档窗口时发生的事件

C# 在Visual Studio中聚焦文档窗口时发生的事件,c#,visual-studio-2013,visual-studio-extensions,C#,Visual Studio 2013,Visual Studio Extensions,我在Visual Studio中有一个扩展性项目,我需要使用在Visual Studio编辑器中从一个窗口切换到另一个窗口时触发的事件,我的问题: 我创建了一个工具窗口,显示一些图表,该图表依赖于一个可编辑文件,当我保存可编辑文件时,我的工具窗口会更新信息,但当打开多个可编辑文件并在它们之间切换时,我希望工具窗口也会更新信息。因此: 我希望在Visual Studio中切换窗口、文件或文档时触发事件,以便使用它执行工具窗口的更新代码。有什么我能做的吗 我只是在这里读了这个问题,但我没有找到解决办

我在Visual Studio中有一个扩展性项目,我需要使用在Visual Studio编辑器中从一个窗口切换到另一个窗口时触发的事件,我的问题:

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

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

我只是在这里读了这个问题,但我没有找到解决办法:

您可以订阅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();
    }
}

请参见示例代码。

什么是
事件
?我在项目中的何处定义它?@Dan events是EnvDTE.events类型的类变量。将其定义为包含上述代码的方法的类中的类成员。