2015-09-15 33 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