【问题标题】:How can I change the custom toolbar name in the add in tab in Excel?如何在 Excel 的添加选项卡中更改自定义工具栏名称?
【发布时间】:2013-07-12 09:23:38
【问题描述】:

我的应用程序是 MS excel 的插件, 它的名称带有“自定义工具栏”。我怎样才能改变 自定义工具栏名称到任何其他名称。 我没有使用任何功能区类/功能区 XML。 它是使用 CommandBar、CommandButton、FaceID 创建的 但只有我需要重命名。

我正在使用 .net 4.0 VS WinForms。

请问有人可以帮我吗? 提前致谢。代码sn -p如下

  public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
    {           
        try
        {
        //    Microsoft.Office.Core.CommandBar toolBar = null;
        //    Microsoft.Office.Interop.Excel.Application excelApp = null;
        //    if (application is Microsoft.Office.Interop.Excel.Application)
        //    {
        //        excelApp = (Microsoft.Office.Interop.Excel.Application)application;
        //    }
        //    if (excelApp != null)
        //    {
        //        toolBar = AddExcelToolbar(excelApp, "MyApp");
        //    }

            if (key == null || key.GetValue("Enable").ToString() == "1")
            {

                Stopwatch sw = Stopwatch.StartNew();
                m_objAddInInstance = (Microsoft.Office.Core.COMAddIn)addInInst;
                if (application is Microsoft.Office.Interop.Excel.Application)
                 {
                    m_objOfficeComponent = new ExcelComponent((Microsoft.Office.Interop.Excel.Application)application);

                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("Hi");

                }

                sw.Stop();

                    MyMessageBox.Log("sw.ElapsedMilliseconds : ",       sw.ElapsedMilliseconds.ToString());
                 MyMessageBox.Log("sw.Elapsed.TotalMilliseconds : ",sw.Elapsed.TotalMilliseconds.ToString());
                  MyMessageBox.Log("sw.ElapsedTicks : ", sw.ElapsedTicks.ToString());
                //m_objOfficeComponent.Init();
           }

        }

屏幕截图如下所示

【问题讨论】:

  • 只是好奇,但如果您的项目已经是 MS Excel 插件,那么为什么不使用 Ribbon 类呢?
  • rwisch45 - 我不知道为什么它仍然被重命名为自定义工具栏,在注册表 HKEY_LOCAL_MACHINE->Software->Microsoft->Office->Excel->Addins->MyApp.Connect 是猜测它位于 excel 的插件选项卡中。
  • rwisch45 - 我已经添加了上面的代码sn-p,这个方法在connect类中。

标签: .net winforms c#-4.0 vsto excel-addins


【解决方案1】:

我还没有测试过这个,但它可能会稍微调整一下

foreach (CommandBar cmdBar in application.CommandBars)
        {
            foreach (CommandBarControl control in cmdBar.Controls)
            {
                if (control.Type == MsoControlType.msoControlButtonPopup)
                {
                    control.accName = "New name";
                }
            }
        }

【讨论】:

  • 这是特定按钮的特定名称,对吧?
  • @roopinin 是的,我已经为您提供了大纲。 Globals.ThisAddin.Application.CommandBars 为您提供 CommandBar 的集合,您可以再次遍历控件以找到所需的。
猜你喜欢
  • 1970-01-01
  • 2014-10-13
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多