启用/禁用Word 2007插件中的功能区按钮

本文关键字:功能区 按钮 插件 2007 禁用 Word 启用 | 更新日期: 2023-09-27 17:52:42

目前我正在做一个word插件,在那里我已经动态地向功能区添加了控件。现在,我需要捕获动态按钮"btnSubmit",并根据我需要启用/禁用按钮的条件。

当文档第一次打开时,它应该被启用,一旦按钮被点击,它应该被禁用。

这应该在布尔条件下执行。如有任何帮助,我将不胜感激。

谢谢,普拉萨德KSR

启用/禁用Word 2007插件中的功能区按钮

可以通过使用getEnabled事件的RibbonXML实现。

丝带XML:

<button id="button1" onAction="button1_Click" getEnabled="button1_EnabledChanged" />
代码:

public void button1_Click(Office.IRibbonControl control)
{
    if (control.Id == "button1")
    {
        // your code
        clicked = true; // a boolean variable
    }
}
public bool button1_EnabledChanged(Office.IRibbonControl control)
{
    if (control.Id == "button1")
        return !clicked;
}

如果你已经创建了按钮,只需创建一个带有thevents变量的区域范围来保存它,分配它,然后对点击事件做出反应来禁用按钮(按钮对象有一个enabled属性)。

Private WithEvents _MyButton As Ribbon.RibbonButton
....
Set _MyButton = {the just created button}

则处理点击事件

对于这种类型的问题,我更倾向于使用RibbonXml而不是设计器。

一个非常简单的选项是有一个Dictionary,你可以将它存储在ribbon回调类中。如果您想要一个更好的选择,VSTO Contrib (http://vstocontrib.codeplex.com/)允许您非常容易地为每个文档创建一个"视图模型",然后您只需将启用的按钮绑定到视图模型上的属性。

更多关于ribbon xml的信息:http://jake.ginnivan.net/vsto-ribbon-designer-in-depth
更多关于vsto贡献和如何帮助你的信息:http://jake.ginnivan.net/vsto-contrib/ribbon-factory

欢呼,
杰克