2015-10-11 3 views
1

Я создаю слово addin с пользовательской панелью.word addin ribbon instance при открытии нескольких документов Word

Я также создаю ленту с элементом управления флажком, который показывает/скрывает пользовательскую панель на основе отмеченного события изменения.

Все работает хорошо, если у меня есть только один экземпляр слова.

Когда я создаю другой экземпляр текстового документа, нажатие флажка в документе 2 вызывает событие для документа 1 и скрывает панель.

Как синхронизировать ленту и пользовательскую панель отдельно для каждого экземпляра слова?

Спасибо.

ответ

1

С Word важно отметить, что новое окно документа обычно не эквивалентно новому экземпляру приложения Word. Word является псевдо-SDI, то есть он открывает отдельное окно для каждого документа, а не несколько документов, разделяющих одно и то же окно приложения. Но есть только один экземпляр приложения.

Опишите, что такое проблема с любым псевдо-SDI-приложением: панель «Лента» и «Пользовательские панели задач» отображают и сохраняют состояние для окна, в котором они были созданы. Чтобы их «отслеживать» отдельные окна, вам нужен код, который отслеживает, какое окно документа в настоящее время имеет фокус и меняет состояния соответственно. Смотрите, например, обсуждение здесь: http://msdn.developer-works.com/article/11561210/SDI+app+challenge+(custom+task+panes)

и в раздел «Управление настраиваемых областей задач в нескольких приложениях Windows» в этой статье: https://msdn.microsoft.com/en-us/library/aa942864.aspx#WordAndInfoPath

Они оба описывают, как вы должны использовать события для отслеживания состояния элементов управления на документ/окно.

+0

Спасибо Синди за информацию, не могли бы вы предоставить мне образцы кода. Я попытался создать список для хранения панелей всякий раз, когда открывается документ. Как сделать ленту уникальной? –