1

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

我正在使用 .net 4.0 VS WinForms。

请问有人可以帮我吗?提前致谢。代码片段如下

  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();
           }

        }

屏幕截图如下所示 在此处输入图像描述

4

1 回答 1

0

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

foreach (CommandBar cmdBar in application.CommandBars)
        {
            foreach (CommandBarControl control in cmdBar.Controls)
            {
                if (control.Type == MsoControlType.msoControlButtonPopup)
                {
                    control.accName = "New name";
                }
            }
        }
于 2013-07-22T10:01:31.990 回答