2011-04-25 137 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; 
}