C# 事件,以了解用户在vsto插件中的多个outlook窗口之间切换时哪个outlook窗口获得焦点

C# 事件,以了解用户在vsto插件中的多个outlook窗口之间切换时哪个outlook窗口获得焦点,c#,outlook,vsto,C#,Outlook,Vsto,我正在开发一个outlook vsto插件,假设有多个outlook检查器打开(例如邮件、约会)。我想让事件知道用户何时使用ALT+Tab切换到不同的检查器,或者哪个检查器获得焦点。 我想要实现的是通过检查inspector中打开的项目的类型来启用/禁用功能区按钮,就像if Appointment Item(按钮启用)else(禁用)一样。 通过在约会\ u open()事件中设置启用的按钮,我完成了一半的任务。 当用户使用ALT+Tab移动到outlook的另一个检查器时,问题开始出现,然后功

我正在开发一个outlook vsto插件,假设有多个outlook检查器打开(例如邮件、约会)。我想让事件知道用户何时使用ALT+Tab切换到不同的检查器,或者哪个检查器获得焦点。 我想要实现的是通过检查inspector中打开的项目的类型来启用/禁用功能区按钮,就像if Appointment Item(按钮启用)else(禁用)一样。 通过在约会\ u open()事件中设置启用的按钮,我完成了一半的任务。 当用户使用ALT+Tab移动到outlook的另一个检查器时,问题开始出现,然后功能区按钮保持启用状态。
如果我得到inspector获得焦点的事件,我可以将enabled属性设置为true或false。

使用
Application.ActiveExplorer
/
ActiveInspector
属性


Inspector
Explorer
对象都公开了
Activate
事件。

Dmitry Streblechenko据我所知,Activate是一种将特定Inspector置于前台的方法。我想知道当任何检查器通过用户操作(如Alt+Tab)获得焦点时的事件还有一个同名的事件-。您可以看到它在OutlookSpy()中启动-打开一个检查器,单击OutlookSpy功能区上的检查器按钮,转到“事件”选项卡,查看窗口底部的日志。绑定激活事件不起作用,最近阅读了有关包装所有检查器,然后在每个检查器上绑定子事件的内容。我仍然不确定你们为什么需要那个活动。如果在处理特定操作时需要活动检查器,只需使用Application.ActiveInspector。如果您正在处理来自功能区的回调,所有的处理程序甚至都会给您一个上下文,在使用inspector功能区控件的情况下,该上下文将是inspector。我认为这是一个误解。我想要实现的是假设outlook中有多个检查器(MailItem或AppointmentItem)。根据检查员用户的类型,我们启用/禁用功能区按钮。我想知道用户何时使用ui或alt+tab切换到另一个Insectpt。表示如果跳转到某一位置,则启用或禁用。所以我想知道我能捕捉到哪个昆虫获得焦点的事件