Настраиваемые области задач

Области задач — это панели пользовательского интерфейса, которые обычно прикрепляются к одной стороне окна в приложении Microsoft Office. Настраиваемые области задач позволяют создать собственную область задач и предоставлять пользователям знакомый интерфейс для доступа к возможностям вашего решения. Например, интерфейс может содержать элементы управления, которые выполняют код для изменения документов или отображения данных из источника данных.

Область применения. Сведения в этом разделе относятся к проектам надстроек VSTO для Outlook. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

Примечание.

Настраиваемая область задач отличается от панели действий. Панель действий является частью настроек на уровне документа для Microsoft Office Word и Microsoft Office Excel. Дополнительные сведения см. в обзоре области действий.

Преимущества пользовательских областей задач

Настраиваемые области задач позволяют интегрировать ваши возможности в знакомый пользовательский интерфейс. Для быстрого создания настраиваемой области задач можно использовать инструменты Visual Studio.

Знакомый пользовательский интерфейс

Пользователи приложений в системе Microsoft Office уже знакомы с помощью областей задач, таких как область задач "Стили" и "Форматирование " в Word. Настраиваемые области задач работают точно так же, как и другие области задач в системе Microsoft Office. Пользователи могут закреплять настраиваемые области задач с разных сторон окна приложения, или их можно перетаскивать в любое место в окне. Можно создать надстройку VSTO, которая одновременно отображает несколько настраиваемых областей задач, а пользователи могут управлять каждой областью задач по-отдельности.

Поддержка Windows Forms

Пользовательский интерфейс настраиваемой области задач, создаваемой с помощью средств разработки Office в Visual Studio, основан на элементах управления Windows Forms. В целях разработки пользовательского интерфейса для настраиваемой области задач можно использовать знакомый конструктор Windows Forms. Для привязки источника данных к элементам управления в области задач также можно использовать поддержку привязки данных в Windows Forms.

Создание настраиваемой области задач

Для создания простой настраиваемой области задач можно использовать следующую процедуру.

  1. Создайте пользовательский интерфейс для своей настраиваемой области задач путем добавления элементов управления Windows Forms в объект UserControl.

  2. Создайте экземпляр настраиваемой области задач путем передачи пользовательского элемента управления в объект CustomTaskPaneCollection в надстройке VSTO. Эта коллекция возвращает новый объект CustomTaskPane, который можно использовать для изменения внешнего вида области задач и реагирования на инициируемые пользователем события.

    Дополнительные сведения см. в статье "Практическое руководство. Добавление настраиваемой области задач в приложение".

Создание пользовательского интерфейса

Все настраиваемые области задач, созданные с помощью средств разработки Office в Visual Studio, содержат объект UserControl. Этот пользовательский элемент управления предоставляет пользовательский интерфейс настраиваемой области задач. Вы можете создать пользовательский элемент управления во время разработки или во время выполнения. При создании пользовательского элемента управления во время разработки можно использовать конструктор Windows Forms для создания пользовательского интерфейса своей области задач.

Создание экземпляра настраиваемой области задач

После создания пользовательского элемента управления, содержащего пользовательский интерфейс настраиваемой области задач, необходимо создать экземпляр CustomTaskPane. Для этого необходимо передать пользовательский элемент управления в CustomTaskPaneCollection в надстройке VSTO путем вызова одного из методов Add. Эта коллекция предоставляется как поле CustomTaskPanes класса ThisAddIn. Код в следующем примере должен выполняться из класса ThisAddIn.

myUserControl1 = new MyUserControl();
myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");
myCustomTaskPane.Visible = true;

Методы Add возвращают новый объект CustomTaskPane. Этот объект можно использовать для изменения внешнего вида области задач и реагирования на инициируемые пользователем события.

Управление областью задач в нескольких окнах

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

Чтобы определить, какое из окон отображает настраиваемую область задач, используйте соответствующую перегрузку метода Add при создании области задач:

  • Чтобы связать область задач с активным окном, используйте метод Add.

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

    Для некоторых приложений Office требуются явные инструкции о том, когда нужно создавать или отображать область задач, если открыты несколько окон. Поэтому важно учитывать место создания экземпляра настраиваемой области задач в своем коде, чтобы гарантировать, что данная область отображается с соответствующими документами или элементами в приложении. Дополнительные сведения см. в разделе "Управление настраиваемыми областями задач" в окнах приложений.

Доступ к приложению из области задач

Если требуется автоматизация приложения из пользовательского элемента управления, к объектной модели можно непосредственно обращаться с помощью Globals.ThisAddIn.Application в своем коде. Доступ к объекту ThisAddIn обеспечивает статический класс Globals. Поле Application данного объекта является точкой входа в объектную модель приложения.

Дополнительные сведения о Application поле ThisAddIn объекта см. в разделе "Программы надстроек VSTO". Пошаговое руководство по автоматизации приложения из пользовательской области задач см . в пошаговом руководстве. Автоматическое приложение из настраиваемой области задач. Дополнительные сведения о классе см. в статье "Глобальный Globals доступ к объектам в проектах Office".

Управление пользовательским интерфейсом области задач

После создания области задач можно использовать свойства и события объекта CustomTaskPane для управления пользовательским интерфейсом области задач и реагирования на изменение пользователем области задач.

Сделать настраиваемую область задач видимой

По умолчанию область задач не отображается. Чтобы сделать область задач видимой Visible , необходимо задать для свойства значение true.

Пользователи могут закрыть область задач в любое время, нажав кнопку "Закрыть " (X) в углу области задач. Тем не менее у пользователей нет стандартного способа, чтобы снова открыть настраиваемую область задач. Если пользователь закрывает настраиваемую область задач, он сможет снова ее увидеть только в том случае, если вы предоставите ему такую возможность.

При создании настраиваемой области задач в своей надстройке VSTO также следует создать элемент пользовательского интерфейса, например кнопку, которую пользователи могут нажать, чтобы отобразить или скрыть эту область. При создании настраиваемой области задач в приложении Microsoft Office, поддерживающем настройку ленты, на ленте можно добавить группу элементов управления с кнопкой, при нажатии которой эта область будет отображаться или закрываться. Пошаговое руководство, демонстрирующее, как это сделать, см . в пошаговом руководстве. Синхронизация настраиваемой области задач с кнопкой ленты.

При создании настраиваемой области задач в приложении Microsoft Office, не поддерживающем настройку ленты, можно добавить кнопку CommandBarButton, при нажатии которой данная область будет отображаться или закрываться.

Изменение внешнего вида области задач

Для управления размером и расположением настраиваемой области задач можно использовать свойства объекта CustomTaskPane. Для внесения других изменений во внешний вид настраиваемой области задач можно использовать свойства объекта UserControl, который содержится в настраиваемой области задач. Например, чтобы указать фоновое изображение для настраиваемой области задач, можно использовать свойство BackgroundImage пользовательского элемента управления.

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

Задача Свойство
Изменение размера области задач Height

Width
Изменение расположения области задач DockPosition
Скрытие области задач или ее отображение Visible
Запрет для пользователя на изменение расположения области задач DockPositionRestrict

Программные события настраиваемой области задач

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

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

Задача Мероприятие
Реагирование на изменение пользователем расположения области задач. DockPositionChanged
Реагирование в случае, когда пользователь скрывает область задач или делает ее видимой. VisibleChanged

Очистка ресурсов, используемых областью задач

После создания настраиваемой области задач объект CustomTaskPane остается в памяти до тех пор, пока ваша надстройка VSTO работает. Объект остается в памяти даже после нажатия кнопки "Закрыть " (X) в углу области задач.

Чтобы освободить ресурсы, используемые областью задач, пока надстройка VSTO продолжает работать, используйте методы Remove или RemoveAt. Эти методы позволяют удалить указанный объект CustomTaskPane из коллекции CustomTaskPanes и вызывают метод Dispose объекта.

Среда выполнения набор средств Visual Studio для Office автоматически очищает ресурсы, используемые настраиваемой областью задач при выгрузке надстройки VSTO. Не вызывайте Remove методы или RemoveAt методы в обработчике ThisAddIn_Shutdown событий в проекте. Эти методы вызывают ObjectDisposedExceptionисключение, так как среда выполнения набор средств Visual Studio для Office очищает ресурсы, используемые CustomTaskPane объектом перед ThisAddIn_Shutdown вызовом. Дополнительные сведения см ThisAddIn_Shutdown. в разделе "События" в проектах Office.

Управление настраиваемыми областями задач в нескольких окнах приложений

При создании настраиваемой области задач в приложении, которое использует несколько окон для отображения документов и других элементов, необходимо выполнить дополнительные шаги, чтобы гарантировать, что область задач отображается в нужное для пользователя время.

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

Следующие группы приложений имеют различные требования по разработке.

Outlook

При создании настраиваемой области задач для Outlook для данной области устанавливается связь с конкретным окном проводника или инспектора. Обозреватель — это окна, отображающие содержимое папки, а инспекторы — это окна, которые отображают элемент, например сообщение электронной почты или задачу.

Если необходимо отобразить настраиваемую область задач с несколькими окнами проводника или инспектора, то при открытии окна проводника или инспектора нужно создать новый экземпляр данной области. Для этого обработайте событие, возникающее при создании окна проводника или инспектора, а затем создайте область задач в обработчике событий. Также можно обрабатывать события проводника или инспектора, чтобы скрывать или отображать области задач в зависимости от того, какое окно является видимым.

Чтобы связать область задач с определенным Обозреватель или инспектором, используйте Add метод для создания области задач и передайте InspectorExplorer объект или объект в параметр окна. Дополнительные сведения о создании настраиваемых областей задач см. в обзоре настраиваемых областей задач.

Предотвращение нескольких экземпляров настраиваемой области задач в Outlook

Чтобы предотвратить отображение нескольких экземпляров настраиваемой области задач в окнах Outlook, удалите явным образом настраиваемую область задач из коллекции CustomTaskPanes класса ThisAddIn при закрытии каждого окна. Вызовите метод Remove в событии, которое возникает при закрытии окна, например Close или Close.

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

Word, InfoPath и PowerPoint

Word, InfoPath и PowerPoint отображают каждый документ в отдельном окне фрейма документа. При создании настраиваемой области задач для этих приложений данная область связывается только с конкретным документом. Если пользователь открывает другой документ, настраиваемая область задач будет скрыта до тех пор, пока более ранний документ не станет снова видимым.

Если необходимо отобразить настраиваемую область задач с несколькими документами, создайте новый экземпляр этой области, когда пользователь создает новый документ или открывает существующий документ. Для этого обработайте события, возникающие при создании или открытии документа, а затем создайте область задач в обработчиках событий. Также можно обрабатывать события документа для скрытия или отображения областей задач, в зависимости от документа, который является видимым.

Чтобы связать область задач с определенным окном документа, используйте Add метод для создания области задач и передайте ( Window для Word), WindowObject (для InfoPath) или DocumentWindow (для PowerPoint) параметру окна .

События Word

Для отслеживания состояния окон документов в Word можно обрабатывать следующие события.

События InfoPath

Для отслеживания состояния окон документов в InfoPath можно обрабатывать следующие события.

События PowerPoint

Для отслеживания состояния окон документов в PowerPoint можно обрабатывать следующие события.