C# 在Visual Studio中聚焦文档窗口时发生的事件
我在Visual Studio中有一个扩展性项目,我需要使用在Visual Studio编辑器中从一个窗口切换到另一个窗口时触发的事件,我的问题: 我创建了一个工具窗口,显示一些图表,该图表依赖于一个可编辑文件,当我保存可编辑文件时,我的工具窗口会更新信息,但当打开多个可编辑文件并在它们之间切换时,我希望工具窗口也会更新信息。因此: 我希望在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中切换窗口、文件或文档时触发事件,以便使用它执行工具窗口的更新代码。有什么我能做的吗 我只是在这里读了这个问题,但我没有找到解决办
您可以订阅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类型的类变量。将其定义为包含上述代码的方法的类中的类成员。