【问题标题】:Accessing Ribbon Controls Programatically in an XML Ribbon在 XML 功能区中以编程方式访问功能区控件
【发布时间】:2011-09-02 18:52:50
【问题描述】:

对于使用 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 创建相同的 Ribbon,则找不到 dropDown1 或 Factory(“当前上下文中不存在该名称”)。

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

【问题讨论】:

  • 你找到答案了吗?

标签: c#-4.0 ms-office ribbon


【解决方案1】:

可能有点晚了,但希望这对某人有所帮助。

我对同样的问题完全感到困惑。事实证明,您只能以字符串 id 的形式访问这些控件,并且该模型对失效事件很重。因此,例如,当您通过 onAction 方法单击按钮时,您只有来自控件对象的发送者 id,但是,在此事件处理程序中,您可以使其他控件无效并使用调用它们的事件

ribbon.InvalidateControl("MyCtl");

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    相关资源
    最近更新 更多