在XML功能区中以编程方式访问功能区控件

时间:2011-09-02 18:52:50

标签: c#-4.0 ms-office ribbon

为了使用C#4.0编写Office加载项,Microsoft提供了两种创建和/或修改功能区界面的方法:您可以使用Ribbon Designer或在Ribbon XML中定义功能区的布局。

如果使用功能区设计器创建功能区,则后面代码中生成的类可以看到您放在功能区上的所有控件。因此,如果我放置一个名为“dropdown1”的RibbonDropDown,我可以使用以下代码向其添加项目:

RibbonDropDownItem item = Factory.CreateRibbonDropDownItem();
item.Label = submatrix.Name;
item.Tag = submatrix;
this.dropDown1.Items.Add(item);

但是,如果使用Ribbon XML创建相同的功能区,则找不到dropDown1或Factory(“当前上下文中不存在该名称”)。

有没有办法在代码中访问添加到Ribbon XML定义的功能区的项目?

1 个答案:

答案 0 :(得分:5)

可能会有点晚,但希望这有助于某人。

我对同样的问题感到十分困惑。事实证明,您只能将这些控件作为字符串ID访问,并且模型对失效事件很重要。因此,例如,当您通过onAction方法单击按钮时,您只有控制对象的发件人ID,但是,在此事件处理程序中,您可以使其他控件无效并使用

调用其事件
ribbon.InvalidateControl("MyCtl");

查看此MS Lab,它拥有启动和运行所需的一切