所以我注意到 CommandBars 默认出现在 Outlook 2010 的 tabAddIns 中。有什么办法可以让它们出现在我的自定义功能区选项卡中?
如果这是不可能的或非常具有挑战性的,我欢迎提出更简单的方法来实现类似的东西。
所以我注意到 CommandBars 默认出现在 Outlook 2010 的 tabAddIns 中。有什么办法可以让它们出现在我的自定义功能区选项卡中?
如果这是不可能的或非常具有挑战性的,我欢迎提出更简单的方法来实现类似的东西。
您可以使用功能区设计器创建自定义功能区选项卡,并将您的 CommandBar 项目移动为功能区按钮。
可以找到一个不错的例子http://msdn.microsoft.com/en-us/library/bb386104.aspx
您无法控制 CommandBar 按钮的位置。这是 Outlook(实际上是 Office 的其余部分)的“兼容性支持”功能,仅用于允许较旧的插件继续运行并使其成为可访问的按钮。如果您的目标是 2010,您通常应该避免使用旧的 CommandBar* 对象,而是使用功能区自定义。
如果您需要 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