2011-04-25 134 views
2

当前我正在处理一个单词Addin,其中我已经将控件动态添加到功能区。现在,我需要赶上动态按钮“btnSubmit”,并根据我需要启用/禁用按钮的条件。启用/禁用Word 2007中的功能区按钮Addin

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

这应该在布尔条件下完成。任何帮助将不胜感激。

感谢, KSR普拉萨德

+0

嗨,如果我的回答帮你 - 这是正确的,请[接受](http://stackoverflow.com/faq #howtoask) – Tangocoder 2013-04-27 21:56:56

回答

0

如果您已经创建的按钮,只需创建一个地域范围WITHEVENTS变量来保存它,为它分配,随即反应过来的单击事件禁用按钮(按钮对象具有启用的属性)。

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

然后处理click事件

0

我偏爱这种类型的问题是使用RibbonXml而非设计师。

一个非常简单的选项将会有一个字典,然后您可以将其存储在功能区回调类中。如果你想要一个更好的选择,VSTO Contrib(http://vstocontrib.codeplex.com/)允许你很容易地为每个文档创建一个'viewmodel',那么你可以简单地将启用的按钮绑定到viewmodel上的一个属性。在功能区XML

更多信息:在VSTO的contrib http://jake.ginnivan.net/vsto-ribbon-designer-in-depth
更多信息,以及它如何可以帮助您:http://jake.ginnivan.net/vsto-contrib/ribbon-factory

干杯,
杰克

1

它使用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; 
}