以下是我的情景:
startFromScratch = true
),使其看起来像独裁者应用程序。[ComVisible(true)]
属性的类,以便我可以从vba代码中调用vsto方法。问题是我无法隐藏标签,我无法刷新功能区。我可以更改其他控件的状态(例如,为CheckBox设置选中状态),但我无法隐藏或禁用我的自定义选项卡。
我在功能区PerformLayout()
上尝试了PerformDynamicLayout()
,ribbon.RibbonUI.Invalidate()
,但没有任何效果,标签永远不会改变状态,尽管在代码中我将其可见属性设置为{{1} }。
在运行时刷新功能区需要做什么?
修改
我只是通过将功能区导出到xml来尝试相同的操作,false
方法按预期工作。对于使用可视化编辑器设计的功能区,有没有办法完成此操作?
答案 0 :(得分:1)
当我将功能区的StartFromScratch
属性设置为True
时,我已经复制了您的问题,但当我将其设置为False
时,它就会消失。这是confirmed by MSDN。
如果此属性设置为true,则无法在运行时更改自定义选项卡的可见性。
要解决此问题,请将StartFromScratch
设置为False
,为每个默认标签添加一个标签,将每个ControlIdType
设置为Office
和OfficeId
每个人都使用默认名称(TabHome
,TabFormulas
等),然后将每个内置标签的可见性设置为False
。 (MSDN has made available a full list of control IDs用于Office应用程序以便于参考。)