我正在使用VSTO 2010和.NET 4为Outlook 2010创建插件。我使用XML方法设计我的功能区,因为我需要上下文菜单挂钩。不幸的是,虽然功能区是在激活addin的Startup事件处理程序之前创建的,但我无法使用处理程序中的Globals.Ribbons.MyRibbon
访问功能区!我在Ribbon.cs代码中添加了以下内容:
partial class ThisRibbonCollection : Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection
{
internal MyRibbon MyRibbon
{
get { return this.GetRibbon<MyRibbon>(); }
}
}
但是当我尝试从启动事件处理程序访问它时,似乎RibbonReadOnlyCollection 为空。
另一方面,如果我使用设计器,我可以毫无问题地访问该集合。如何将新功能区添加到集合中?我没有看到任何设置方法或任何可调整的功能区集合实例。
答案 0 :(得分:1)
使用Globals.Ribbons
无法访问使用XML创建的色带。请参阅this回答。
答案 1 :(得分:0)
的ThisAddIn
public Ribbon myRibbon;
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
Ribbon appointmentRibbon = new Ribbon();
myRibbon = appointmentRibbon; // save to local variable
IRibbonExtensibility ribbonExtensibility = appointmentRibbon;
return ribbonExtensibility;
}