2015-09-15 3 views
-1

Моя задача состояла в том, чтобы создать новый документ из данного текстового документа, а затем мне нужно отключить пользовательскую ленточную кнопку только в этой недавно созданной ленте документа Word. Не активный документ рассматривается здесь, потому что он переключается, когда пользователь переключает его.Несколько экземпляров Word Кнопка ленты ленты отключена в Word Addin Project

В настоящее время я не могу получить новый элемент управления ленты экземпляра Word из кода C#. Когда я применяю следующее, оба документа затронуты.

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

поскольку слово использует один экземпляр для всех документов, которые вы должны включить кнопку в документе слова, где необходимо, должно быть событие 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

hi Thorarins, Да, это хорошо, но нужно найти способ идентифицировать второй экземпляр слова. Нужно ли устанавливать CustomProperty при создании этого второго документа, а затем как я могу получить доступ в классе ThisAddIn? – KIS

+0

вам нужно установить что-то (настраиваемое свойство) в документе, которому нужна кнопка, а затем вы проверяете это настраиваемое свойство, и если оно там просто разрешено, иначе вы просто активируете другой документ. – Thorarins