.net 如何区分是在主窗口上按下按钮还是在单独窗口中打开的电子邮件上按下按钮?

.net 如何区分是在主窗口上按下按钮还是在单独窗口中打开的电子邮件上按下按钮?,.net,outlook-addin,outlook-2013,.net,Outlook Addin,Outlook 2013,问题是当用户分离电子邮件并使用外接程序时。他认为,我理解为什么,他是在操作他可以看到在他面前的电子邮件。但具体实施是: Selection-Selection=app.ActiveExplorer().Selection 因此,用户实际上是根据主窗口上的资源管理器中的选择进行操作。我的问题是: 如何检查按钮按下的位置?它是带有资源管理器的主窗口,还是在单独的窗口中分离电子邮件 p.S.按钮放置在功能区上 按钮单击处理程序将RibbonControl作为参数。将RibbonControl.Cont

问题是当用户分离电子邮件并使用外接程序时。他认为,我理解为什么,他是在操作他可以看到在他面前的电子邮件。但具体实施是:

Selection-Selection=app.ActiveExplorer().Selection

因此,用户实际上是根据主窗口上的资源管理器中的选择进行操作。我的问题是:

如何检查按钮按下的位置?它是带有资源管理器的主窗口,还是在单独的窗口中分离电子邮件


p.S.按钮放置在功能区上

按钮单击处理程序将RibbonControl作为参数。将RibbonControl.Context转换为资源管理器或检查器。

您的按钮单击处理程序将RibbonControl作为参数。将RibbonControl.Context强制转换为资源管理器或检查器。

第一种方法是检查返回表示桌面上当前Microsoft Outlook窗口的对象的方法,即资源管理器或检查器对象。如果没有打开Outlook资源管理器或检查器,则不返回任何内容

第二种方法(直接)是签出IRibbonControl接口的属性,该接口表示包含触发回调过程的功能区用户界面的活动窗口。您可以在MSDN的以下系列文章中阅读有关Fluent UI的更多信息:


第一种方法是检查返回表示桌面上当前Microsoft Outlook窗口的对象的方法,该对象可以是Explorer对象,也可以是Inspector对象。如果没有打开Outlook资源管理器或检查器,则不返回任何内容

第二种方法(直接)是签出IRibbonControl接口的属性,该接口表示包含触发回调过程的功能区用户界面的活动窗口。您可以在MSDN的以下系列文章中阅读有关Fluent UI的更多信息: