当前我正在处理一个单词Addin,其中我已经将控件动态添加到功能区。现在,我需要赶上动态按钮“btnSubmit”,并根据我需要启用/禁用按钮的条件。启用/禁用Word 2007中的功能区按钮Addin
当文档第一次打开时,应该启用它,一旦点击了按钮,它应该被禁用。
这应该在布尔条件下完成。任何帮助将不胜感激。
感谢, KSR普拉萨德
当前我正在处理一个单词Addin,其中我已经将控件动态添加到功能区。现在,我需要赶上动态按钮“btnSubmit”,并根据我需要启用/禁用按钮的条件。启用/禁用Word 2007中的功能区按钮Addin
当文档第一次打开时,应该启用它,一旦点击了按钮,它应该被禁用。
这应该在布尔条件下完成。任何帮助将不胜感激。
感谢, KSR普拉萨德
如果您已经创建的按钮,只需创建一个地域范围WITHEVENTS变量来保存它,为它分配,随即反应过来的单击事件禁用按钮(按钮对象具有启用的属性)。
Private WithEvents _MyButton As Ribbon.RibbonButton
....
Set _MyButton = {the just created button}
然后处理click事件
我偏爱这种类型的问题是使用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
干杯,
杰克
它使用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;
}
嗨,如果我的回答帮你 - 这是正确的,请[接受](http://stackoverflow.com/faq #howtoask) – Tangocoder 2013-04-27 21:56:56