Поделиться через


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

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

Применение. Сведения этого раздела применяются к проектам уровня приложения для следующих приложений: Excel 2007 и Excel 2010; InfoPath 2007 и InfoPath 2010; Outlook 2007 и Outlook 2010; PowerPoint 2007 и PowerPoint 2010; Word 2007 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

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

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

  • Outlook

  • Word, InfoPath и PowerPoint 2010

  • Excel и PowerPoint 2007

ссылка на видео Для просмотра связанных демонстрационных видеороликов перейдите по ссылке How Do I: Manage Task Panes in Word Add-ins?.

Outlook

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

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

Чтобы связать область задач с конкретным обозревателем или инспектором, используйте метод CustomTaskPaneCollection.Add(UserControl, String, Object) для создания области задач и передайте объект Explorer или Inspector в параметр window. Дополнительные сведения о создании настраиваемых областей задач см. в разделе Общие сведения о настраиваемых областях задач.

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

События Outlook

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

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

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

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

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

Word, InfoPath и PowerPoint 2010

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

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

Чтобы связать область задач с конкретным окном документа, используйте метод CustomTaskPaneCollection.Add(UserControl, String, Object) для создания области задач и передайте объект Microsoft.Office.Interop.Word.Window (для Word), Microsoft.Office.Interop.InfoPath.WindowObject (для InfoPath) или Microsoft.Office.Interop.PowerPoint.DocumentWindow (для PowerPoint) в параметр window.

Дополнительные сведения см. в разделе Управление областями задач в нескольких документах Word и InfoPath. Данная статья посвящена работе в приложениях Word и InfoPath, однако описанные в ней концепции также применимы к PowerPoint 2010, поскольку в этом выпуске PowerPoint используется интерфейс SDI.

События Word

Чтобы отслеживать состояние окон документа в приложении Word, можно обрабатывать следующие события:

События InfoPath

Чтобы отслеживать состояние окон документа в приложении InfoPath, можно обрабатывать следующие события:

События PowerPoint

Чтобы отслеживать состояние окон документа в приложении PowerPoint 2010, можно обработать следующие события:

Excel и PowerPoint 2007

В приложениях Excel и PowerPoint 2007 для всех документов (книги и презентации) создается одно окно фрейма документа. При создании настраиваемой области задач в этих приложениях она доступна для каждого открытого в приложении документа. При этом не требуется никаких дополнительных действий, чтобы обеспечить отображение области задач для каждого документа.

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

События Excel

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

События PowerPoint

Чтобы отслеживать состояние презентаций в приложении PowerPoint 2007, можно обрабатывать следующие события:

Пример

В следующем примере кода показано, как скрыть или отобразить настраиваемую область задач в обработчике событий для события WorkbookActivate в надстройке Excel. При активации каждой книги область задач отображается только в том случае, если эта книга имеет имя SalesData.xls, в противном случае область задач не отображается. Чтобы запустить данный пример, замените используемый по умолчанию обработчик событий ThisAddIn_Startup в классе ThisAddIn на следующий код. В данном примере предполагается, что в проект входит UserControl с именем UserControl1.

Dim myUserControl As UserControl1
Dim myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Startup
    myUserControl = New UserControl1()
    myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl, "Sales Task Pane")
End Sub

Private Sub Application_WorkbookActivate(ByVal Wb As Excel.Workbook) _
    Handles Application.WorkbookActivate

    If Wb.Name = "SalesData.xlsx" Then
        myCustomTaskPane.Visible = True
    Else
        myCustomTaskPane.Visible = False
    End If
End Sub
private UserControl1 myUserControl;
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    this.Application.WorkbookActivate += new Excel.AppEvents_WorkbookActivateEventHandler(
        Application_WorkbookActivate);

    myUserControl = new UserControl1();
    myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl, "Sales Task Pane");
}

void Application_WorkbookActivate(Excel.Workbook Wb)
{
    if (Wb.Name == "SalesData.xlsx")
        myCustomTaskPane.Visible = true;
    else
        myCustomTaskPane.Visible = false;
}

См. также

Задачи

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

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

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

Пошаговое руководство. Синхронизация настраиваемой области задач с кнопкой на ленте

Другие ресурсы

Общие сведения о настраиваемых областях задач

Управление областями задач в нескольких документах Word и InfoPath

Журнал изменений

Дата

Журнал

Причина

Май 2010

Добавлены новые сведения об управлении пользовательскими задачами, представленными в PowerPoint 2010.

Улучшение информации.