我正在使用VSTO设计带有Excel界面的应用程序。我想在启动时隐藏功能区(应用程序中不需要)并在退出时重新显示它(如果用户最初显示它),以避免让使用该应用程序的人感到恼火,并希望下次使用功能区他们打开Excel。
我可以使用ThisWorkbook_Startup
中的以下代码隐藏功能区(来自此问题Excel 2007 Minimize the Ribbon programatically but Not the menu bar):
Office.CommandBars cbs = null;
cbs = Application.CommandBars;
foreach (Office.CommandBar commandBar in cbs)
{
if (commandBar.Name == "Ribbon")
{
this.Application.ActiveWindow.Activate();
Application.SendKeys("^{F1}", true);
}
}
但是,当放入ThisWorkbook_Shutdown
或ThisWorkbook_BeforeClose
方法时,与之前引用的问题相同的代码或类似变体似乎不起作用。代码被命中但似乎永远不会执行 - 功能区永远不会恢复。
还有另一种方法可以在退出时恢复功能区吗?
谢谢,
安德鲁