我的设计师(不是XML)定义我的自定义功能区如下:基本上我定义了一个组,并将其添加到两个不同的选项卡中,这两个选项卡分配给两个不同的OfficeIds (TabAppointment和TabCalendar)。不幸的是,彩带只出现在日历上,而不是约会上。不过,如果我删除了tab2,它会在预约时出现。所以我的结论是只有一个选项卡允许?如何实现在两个tab/ OfficeIds中重用我的组?
namespace OutlookAddIn4
{
partial class MyAddInDo : Microsoft.Office.Tools.Ribbon.RibbonBase
{
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
private System.ComponentModel.IContainer components = null;
public MyAddInDo()
: base(Globals.Factory.GetRibbonFactory())
{
InitializeComponent();
}
/// <summary>
/// Verwendete Ressourcen bereinigen.
/// </summary>
/// <param name="disposing">"true", wenn verwaltete Ressourcen gelöscht werden sollen, andernfalls "false".</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Vom Komponenten-Designer generierter Code
/// <summary>
/// Erforderliche Methode für Designerunterstützung -
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
/// </summary>
private void InitializeComponent()
{
this.tab1 = this.Factory.CreateRibbonTab();
this.group1 = this.Factory.CreateRibbonGroup();
this.btnAddMyAddInDo = this.Factory.CreateRibbonButton();
this.btnViewInMyAddInDo = this.Factory.CreateRibbonButton();
this.btnRemoveFromMyAddInDo = this.Factory.CreateRibbonButton();
this.btnSettings = this.Factory.CreateRibbonButton();
this.tab2 = this.Factory.CreateRibbonTab();
this.tab1.SuspendLayout();
this.group1.SuspendLayout();
this.tab2.SuspendLayout();
this.SuspendLayout();
//
// tab1
//
this.tab1.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
this.tab1.ControlId.OfficeId = "TabAppointment";
this.tab1.Groups.Add(this.group1);
this.tab1.Label = "TabAppointment";
this.tab1.Name = "tab1";
//
// group1
//
this.group1.Items.Add(this.btnAddMyAddInDo);
this.group1.Items.Add(this.btnViewInMyAddInDo);
this.group1.Items.Add(this.btnRemoveFromMyAddInDo);
this.group1.Items.Add(this.btnSettings);
this.group1.Label = "MyAddInDo";
this.group1.Name = "group1";
this.group1.Position = this.Factory.RibbonPosition.AfterOfficeId("GroupActions");
//
// btnAddMyAddInDo
//
this.btnAddMyAddInDo.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
this.btnAddMyAddInDo.Image = global::OutlookAddIn4.Properties.Resources.do_48x48;
this.btnAddMyAddInDo.Label = "Add Minutes";
this.btnAddMyAddInDo.Name = "btnAddMyAddInDo";
this.btnAddMyAddInDo.ShowImage = true;
this.btnAddMyAddInDo.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.BtnAddMyAddInDo_Click);
//
// btnViewInMyAddInDo
//
this.btnViewInMyAddInDo.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
this.btnViewInMyAddInDo.Image = global::OutlookAddIn4.Properties.Resources.do_48x48;
this.btnViewInMyAddInDo.Label = "View Minutes";
this.btnViewInMyAddInDo.Name = "btnViewInMyAddInDo";
this.btnViewInMyAddInDo.ShowImage = true;
this.btnViewInMyAddInDo.Visible = false;
this.btnViewInMyAddInDo.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.ViewInMyAddInDo_Click);
//
// btnRemoveFromMyAddInDo
//
this.btnRemoveFromMyAddInDo.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
this.btnRemoveFromMyAddInDo.Image = global::OutlookAddIn4.Properties.Resources.do_48x48;
this.btnRemoveFromMyAddInDo.Label = "Remove Minutes";
this.btnRemoveFromMyAddInDo.Name = "btnRemoveFromMyAddInDo";
this.btnRemoveFromMyAddInDo.ShowImage = true;
this.btnRemoveFromMyAddInDo.Visible = false;
this.btnRemoveFromMyAddInDo.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.RemoveFromMyAddInDo_Click);
//
// btnSettings
//
this.btnSettings.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
this.btnSettings.Image = global::OutlookAddIn4.Properties.Resources.do_48x48;
this.btnSettings.Label = "Settings";
this.btnSettings.Name = "btnSettings";
this.btnSettings.ShowImage = true;
this.btnSettings.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.Settings_Click);
//
// tab2
//
this.tab2.Label = "tab2";
this.tab2.Name = "tab2";
this.tab2.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
this.tab2.ControlId.OfficeId = "TabCalendar";
this.tab2.Groups.Add(this.group1);
this.tab2.Label = "TabSettings";
//
// MyAddInDo
//
this.Name = "MyAddInDo";
this.RibbonType = "Microsoft.Outlook.Appointment, Microsoft.Outlook.Explorer";
this.Tabs.Add(this.tab2);
this.Tabs.Add(this.tab1);
this.Load += new Microsoft.Office.Tools.Ribbon.RibbonUIEventHandler(this.MyAddInDo_Load);
this.tab1.ResumeLayout(false);
this.tab1.PerformLayout();
this.tab2.ResumeLayout(false);
this.tab2.PerformLayout();
this.group1.ResumeLayout(false);
this.group1.PerformLayout();
this.ResumeLayout(false);
}
#endregion
internal Microsoft.Office.Tools.Ribbon.RibbonTab tab1;
internal Microsoft.Office.Tools.Ribbon.RibbonGroup group1;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnAddMyAddInDo;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnViewInMyAddInDo;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnRemoveFromMyAddInDo;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnSettings;
internal SettingsForm settingsForm;
internal Microsoft.Office.Tools.Ribbon.RibbonTab tab2;
}
partial class ThisRibbonCollection
{
internal MyAddInDo MyAddInDo
{
get { return this.GetRibbon<MyAddInDo>(); }
}
}
}发布于 2020-05-02 00:09:51
您是否收到任何Ribbon UI错误?
默认情况下,如果外接程序尝试操作Microsoft Office用户界面(UI)但失败,则不会显示任何错误消息。但是,您可以将Microsoft Office应用程序配置为显示与UI相关的错误消息。您可以使用这些消息来帮助确定自定义功能区不显示的原因,或功能区显示但不显示控件的原因。
显示VSTO外接程序用户界面错误
启动application.
File选项卡。单击Options.File窗格,单击Advanced. details窗格,选择Show VSTO Add-in user interface errors,然后单击OK.
对于Outlook,“Show VSTO Add-in user interface错误”复选框位于详细信息窗格的“开发人员”部分。对于其他应用程序,该复选框位于详细信息窗格的常规部分。在How to: Show Add-in user interface errors文章中阅读更多关于这方面的内容。
您需要为每个选项卡定义一组单独的控件。
https://stackoverflow.com/questions/61542354
复制相似问题