为了使用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定义的功能区的项目?
答案 0 :(得分:5)
可能会有点晚,但希望这有助于某人。
我对同样的问题感到十分困惑。事实证明,您只能将这些控件作为字符串ID访问,并且模型对失效事件很重要。因此,例如,当您通过onAction方法单击按钮时,您只有控制对象的发件人ID,但是,在此事件处理程序中,您可以使其他控件无效并使用
调用其事件ribbon.InvalidateControl("MyCtl");
查看此MS Lab,它拥有启动和运行所需的一切