启用/禁用Word 2007插件中的功能区按钮
本文关键字:功能区 按钮 插件 2007 禁用 Word 启用 | 更新日期: 2023-09-27 17:52:42
目前我正在做一个word插件,在那里我已经动态地向功能区添加了控件。现在,我需要捕获动态按钮"btnSubmit",并根据我需要启用/禁用按钮的条件。
当文档第一次打开时,它应该被启用,一旦按钮被点击,它应该被禁用。
这应该在布尔条件下执行。如有任何帮助,我将不胜感激。
谢谢,普拉萨德KSR
可以通过使用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
欢呼,
杰克