当文档窗口在 Visual Studio 中获得焦点时发生的事件

2024-01-03

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

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

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

我刚刚在这里读到这个问题,但我没有在那里找到解决方案:是否有文档窗口焦点事件? https://stackoverflow.com/questions/7575607/are-there-any-document-window-focus-events


您可以订阅 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. 在状态栏中显示活动窗口的文档路径 https://vlasovstudio.com/visual-commander/extensions.html示例代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当文档窗口在 Visual Studio 中获得焦点时发生的事件 的相关文章

随机推荐