Outlook 2010中的CommandBars

时间:2011-05-10 23:31:52

标签: c# visual-studio-2010 vsto outlook-2010 commandbar

所以我注意到默认情况下,CommandBars会出现在outlook 2010的tabAddIns中。有什么方法可以让它们出现在我的自定义功能区选项卡中吗?

如果不可能或非常具有挑战性,我欢迎提出更容易实现类似方法的建议。

3 个答案:

答案 0 :(得分:2)

您可以使用功能区设计器创建自定义功能区选项卡,并将CommandBar项目移动为功能区按钮。

可以找到一个不错的例子http://msdn.microsoft.com/en-us/library/bb386104.aspx

答案 1 :(得分:1)

您无法控制CommandBar按钮的位置。这是Outlook的“兼容性支持”功能(实际上是Office的其余部分),仅用于允许旧的插件继续运行并使它们可以访问按钮。如果您的目标是2010,则通常应避免使用旧的CommandBar *对象,而应使用功能区自定义。

答案 2 :(得分:1)

如果您需要Office 2007/2003支持(我假设您拥有命令栏​​的原因),那么理想情况下您需要检查正在运行的office interop dll的MajorVersion。

然后你可以这样做:

string majorVersionString = Globals.ThisAddIn.Application.Version.Split(new char[] { '.' })[0];
int majorVersion = Convert.ToInt32(majorVersionString);
if (majorVersion < 14)
{
    //Register CommandBar
}

然后还会创建一个以OutlookExplorer功能区为目标的功能区。因为只有Office 2010会请求该功能区类型,所以它只适用于Office 2010。

有关如何创建功能区xml功能区的信息,请参阅http://msdn.microsoft.com/en-us/library/bb398246.aspx。您所使用的功能区ID是Microsoft.Outlook.Explorer。有关扩展Outlook资源管理器功能区的详细信息,请参阅http://msdn.microsoft.com/en-us/library/ee692172.aspx#OfficeOLExtendingUI_Explorer

修改 有关多个版本的Office的多目标定位的更多信息,请访问http://blogs.msdn.com/b/vsto/archive/2010/06/04/creating-an-add-in-for-office-2007-and-office-2010-that-quot-lights-up-quot-on-office-2010-mclean-schofield.aspx