添加功能区(选项卡)以联系表单outlook addin

时间:2013-01-17 11:53:20

标签: c# .net vsto outlook-addin

我正在尝试在C#中的outlook联系人中添加功能区/选项卡。我添加了一个功能区,在xml中我编写了以下代码。

<tab idMso="TabAddIns" label="mySoftwareTab">
    <group id="ContentGroup" label="Appointments">
      <button id="GetAppointment" label="Get Appointments" screentip="Appointment" imageMso="ViewAppointmentInCalendar" onAction="GetAppointmentPressed" size="large"
              supertip="Get all appointments."/>
    </group>
  </tab>

这会在包含主要区域的每个屏幕中创建标签(如图像在位置A和B处显示mySoftwareTab)

enter image description here 但是,如果我将idMso更改为TabContact,它只会在联系人上创建一个按钮(图像中的C位置)。

我希望仅在Outlook联系页面创建标签(在图像中的位置B)。 我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

添加getVisible回调方法,并根据您希望它出现的检查器窗口来控制方法。

<tab idMso="TabAddIns" label="mySoftwareTab"
     getVisible="myTab_GetVisible">

然后,创建名为mySoftwareTab_GetVisible

的回调委托方法

更新原始海报(Kash)提供的最终解决方案,以便归功于他。 ...为发现问题和答案的其他人重新发布此内容。

    public bool myTab_GetVisible(Office.IRibbonControl control) 
    { 
        if (control.Context is Outlook.Inspector) 
        { 
            Outlook.Inspector oInsp = control.Context as Outlook.Inspector; 
            if (oInsp.CurrentItem is Outlook.ContactItem) 
            { 
                return true; 
            } 
            else 
            { 
                return false; 
            } 
        } 
        else 
        { 
            return false; 
        } 
    }