我编写了一个简单的C ++ COM Office加载项,用于加载功能区XML定义并显示简单的功能区选项卡。它具有一些按钮和dropDown(组合框/下拉列表)。我可以处理按钮点击事件和组合选择更改事件,如魅力。
现在我想根据活动文档中的更改更新功能区UI,以便禁用某些按钮并从组合框中添加/删除一些项目。
我上下搜索,找不到控制方法。我错过了很明显的东西吗?如何在代码中的任何位置更改按钮启用状态?
答案 0 :(得分:4)
我看到它使用Windows功能区控件完成的方式:必须在设计时在XML标记中指定额外的按钮。在运行时,您调用SetModes()
以指定在功能区中显示哪些小组件集。
像这样:
<Application.Views>
<Ribbon>
<Ribbon.Tabs>
<Tab CommandName="cmdTabMain" ApplicationModes="0,1">
<Group CommandName="cmdGroupCommon"
SizeDefinition="ThreeButtons"
ApplicationModes="0,1">
<Button CommandName="cmdButtonNew" />
<Button CommandName="cmdButtonOpen" />
<Button CommandName="cmdButtonSave" />
</Group>
<Group CommandName="cmdGroupSimple"
SizeDefinition="TwoButtons"
ApplicationModes="0">
<Button CommandName="cmdButtonSwitchToAdvanced" />
<Button CommandName="cmdButtonDropA" />
</Group>
<Group CommandName="cmdGroupAdvanced"
SizeDefinition="FourButtons"
ApplicationModes="1">
<Button CommandName="cmdButtonSwitchToSimple" />
<Button CommandName="cmdButtonDropA" />
<Button CommandName="cmdButtonDropB" />
<Button CommandName="cmdButtonDropC" />
</Group>
</Tab>
</Ribbon.Tabs>
</Ribbon>
</Application.Views>
然后(在C#中无论如何)在点击处理程序中,您执行_ribbon.SetModes(1)
或_ribbon.SetModes(0)
。