我正在尝试在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)
但是,如果我将idMso更改为TabContact,它只会在联系人上创建一个按钮(图像中的C位置)。
我希望仅在Outlook联系页面创建标签(在图像中的位置B)。 我怎么能这样做?
答案 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;
}
}