首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Outlook:在多个选项卡中重用功能区组,以便在outlook中的多个位置显示自定义功能区(VSTO加载项、功能区设计器)

Outlook:在多个选项卡中重用功能区组,以便在outlook中的多个位置显示自定义功能区(VSTO加载项、功能区设计器)
EN

Stack Overflow用户
提问于 2020-05-01 20:18:43
回答 1查看 111关注 0票数 0

我的设计师(不是XML)定义我的自定义功能区如下:基本上我定义了一个组,并将其添加到两个不同的选项卡中,这两个选项卡分配给两个不同的OfficeIds (TabAppointment和TabCalendar)。不幸的是,彩带只出现在日历上,而不是约会上。不过,如果我删除了tab2,它会在预约时出现。所以我的结论是只有一个选项卡允许?如何实现在两个tab/ OfficeIds中重用我的组?

代码语言:javascript
复制
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>(); }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-05-02 00:09:51

您是否收到任何Ribbon UI错误?

默认情况下,如果外接程序尝试操作Microsoft Office用户界面(UI)但失败,则不会显示任何错误消息。但是,您可以将Microsoft Office应用程序配置为显示与UI相关的错误消息。您可以使用这些消息来帮助确定自定义功能区不显示的原因,或功能区显示但不显示控件的原因。

显示VSTO外接程序用户界面错误

启动application.

  • Click
  1. File选项卡。单击Options.
  2. In
  3. File窗格,单击Advanced.
  4. In

details窗格,选择Show VSTO Add-in user interface errors,然后单击OK.

对于Outlook,“Show VSTO Add-in user interface错误”复选框位于详细信息窗格的“开发人员”部分。对于其他应用程序,该复选框位于详细信息窗格的常规部分。在How to: Show Add-in user interface errors文章中阅读更多关于这方面的内容。

您需要为每个选项卡定义一组单独的控件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61542354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档