首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >资源管理器更改时发生的Outlook VSTO事件

资源管理器更改时发生的Outlook VSTO事件
EN

Stack Overflow用户
提问于 2019-08-01 02:28:51
回答 2查看 326关注 0票数 0

我需要处理活动浏览器对象上的selection changed事件。但是,当我在ribbon加载时订阅event Globals.ThisAddIn.Application.ActiveExplorer().SelectionChange时,它只适用于当前活动的浏览器。

有没有像active explorer这样的事件改变了?

我还尝试浏览了explorers Globals.ThisAddIn.Application.Explorers的列表,但该列表只包含打开的explorers。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-01 03:48:08

首先,不要在从多点表达式(例如Globals.ThisAddIn.Application.ActiveExplorer)返回的对象上设置事件处理程序-您将在一个临时变量上设置事件处理程序,该变量将在垃圾收集器到达时立即释放。对象必须存储在一个变量中,该变量保证在您的插件生存期内保持活动状态。

其次,使用Application.Explorers.NewExplorer事件跟踪新的资源管理器(您也可以使用Explorer.Close事件释放特定的资源管理器对象)。

创建一个将Explorer对象存储为其成员的包装类(您可以将Explorer传递给它的构造函数),并为Explorer.SelectionChangeExplorer.Close事件设置事件处理程序。在您的插件中,声明一个包装器列表(List<MyExplorerWrapper>)。启动时,循环遍历Application.Explorers集合中的所有资源管理器,并为Explorers.NewExplorer事件设置一个事件处理程序(同样,必须在插件类级别声明Explorers才能使其保持活动状态)。

票数 1
EN

Stack Overflow用户

发布于 2019-08-01 03:53:39

无论是由于用户操作还是通过程序代码打开新的资源管理器窗口,都会激发Explorers.NewExplorer事件。

当资源管理器由于用户操作或通过程序代码而变为活动窗口时,将激发Explorer.Activate事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57296917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档