Globals.ThisAddIn.Application.ActiveInspector == null,尽管为何显示有效的Outlook.AppointmentItem?

时间:2019-03-21 16:42:09

标签: vsto outlook-addin

我正在使用VSTO开发一个Outlook插件。

在方法中: this.Load + =新的Microsoft.Office.Tools.Ribbon.RibbonUIEventHandler(this.MyApp_Load);

在功能区的MyApp_Load中,我使用以下代码:

if (Globals.ThisAddIn.isLoggedIn())
{
    btnMyApp.Visible= true;
    Outlook.Inspector inspector = 
         Globals.ThisAddIn.Application.ActiveInspector();
    if (inspector != null && inspector.CurrentItem != null)
    {

当我在Outlook中打开一个AppointmentItem时,我可以调试上面的代码。不幸的是,尽管正在显示有效的AppointmentItem,但ActiveInspector()== null。

为什么?

1 个答案:

答案 0 :(得分:0)

在显示检查器之前调用该方法。您必须使用作为参数传递给RibbonUI回调的onLoad并将RibbonUI.Context强制转换为Inspector接口。