我正在使用 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
但是,与前面提到的问题相同的代码或类似的变体在放在orThisWorkbook_BeforeClose
方法中时似乎不起作用。代码被命中但似乎从未执行 - 功能区永远不会恢复。
还有其他方法可以在退出时恢复功能区吗?
谢谢,
安德鲁