2015-01-09 4 views
0

Я создал 2 различных надстроек для перспективы 2013.доступа Пользовательские перспективы 2013 ленты во время выполнения с помощью C#

В первом надстройке, у меня есть пользовательские ленты и настраиваемую область задач.

Во второй надстройке у меня есть пользовательская лента и по щелчку этой ленты я хочу скрыть первую надстройку.

Итак, я попытался скрыть пользовательскую панель задач, и это сработало.

foreach (Microsoft.Office.Tools.CustomTaskPane mtPane in Globals.ThisAddIn.CustomTaskPanes.ToList()) 
    { 
    if (mtPane.Title == "CustomTaskPane") 
    { 
     mtPane.Visible = false; 
    } 
    } 

но я не уверен, как скрыть или получить доступ к пользовательской ленте во время выполнения в другой надстройке?

ответ

1

Вы не можете получить доступ к пользовательскому интерфейсу Ribbon, который принадлежит к другим надстройкам. Вместо этого вы можете определить общедоступное свойство или метод в надстройке, которую вы должны достичь. Таким образом, вы будете управлять своим пользовательским интерфейсом через общедоступные свойства и методы, определенные в надстройке. См. Walkthrough: Calling Code in an Application-Level Add-in from VBA для получения дополнительной информации.

+0

ok. теперь, если я обновил свое решение. Я создал две кнопки в ленте контекстного меню. нажав одну кнопку, вы хотите отключить другую кнопку. так это возможно? – User5590

+0

Нет, это не так. Вы можете вызвать общедоступный метод в другой надстройке, которая создала кнопку, которую вам нужно отключить. В методе вы можете вызвать метод Invalidate или InvalidateControl для интерфейса IRibbonUI для вызова вызываемых обратных вызовов. –

+0

Теперь обе кнопки в пользовательской ленте ui принадлежат к тому же аддину. все же это невозможно? – User5590