2015-09-15 58 views
-1

我的任務是從給定的word文檔創建一個新文檔,然後我需要僅在該新創建的Word文檔功能區中禁用自定義功能區按鈕。不是活動文檔在這裏考慮,因爲它在用戶切換時正在切換。在Word Addin項目中禁用Word文檔功能區按鈕的多個實例

目前我無法從C#代碼中獲取新的Word實例功能區控件。當我申請以下時,這兩份文件都會受到影響。

CustomRibbon ribbon = Globals.Ribbons.CustomRibbon; 
ribbon.button.Enabled = false; 
+0

因爲字使用一個實例的所有文件,您必須啓用Word文檔中的按鈕,它在哪裏需要的時候,應該有一個onactivate事件或類似事件,並在失去焦點時禁用它。 – Thorarins

+0

謝謝你的回覆Thorarins,你可以用示例代碼進一步解釋它嗎? – KIS

回答

1

像這樣的事情應該工作,你必須找到一個方法來識別文檔

private void MyAddin_Startup(object sender, System.EventArgs a) 
{ 
    this.Application.DocumentChange += new ApplicationEvents4_DocumentChangeEventHandler(Application_DocumentChange); 
} 

private void Application_DocumentChange() 
{ 
    bool enableButton = false; 
    if(yourdocument) // put something here that checks the document you want the button to be enable in 
    { 
     enableButton = true; 
    } 
    CustomRibbon ribbon = Globals.Ribbons.CustomRibbon; 
    ribbon.button.Enabled = enableButton; 
} 
+0

嗨Thorarins,是的,這很好,但需要找到一種方法來識別第二個詞的實例。我是否需要在生成第二個文檔時設置CustomProperty,然後如何在ThisAddIn類中訪問? – KIS

+0

您需要在需要該按鈕的文檔上設置一些內容(自定義屬性),然後檢查該自定義屬性,如果是,則只需啓用,否則您只是激活另一個文檔。 – Thorarins