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


CustomTaskPane Класс (2007 System)

Обновлен: Ноябрь 2007

Представляет настраиваемые области задач в приложении Microsoft Office.

Пространство имен:  Microsoft.Office.Tools
Сборка:  Microsoft.Office.Tools.Common.v9.0 (в Microsoft.Office.Tools.Common.v9.0.dll)

Синтаксис

'Декларация
Public NotInheritable Class CustomTaskPane _
    Implements IDisposable
'Применение
Dim instance As CustomTaskPane
public sealed class CustomTaskPane : IDisposable

Заметки

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

Для управления размером или расположением настраиваемой области можно использовать свойства, например Height, Width и Visible.

Чтобы реагировать на перемещение настраиваемой области задач или изменение видимости, можно обрабатывать события DockPositionChanged и VisibleChanged.

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

Примеры

В следующем примере кода показано, как создать настраиваемую область задач с помощью метода Add(UserControl, String). В примере для задания стандартного внешнего вида настраиваемой области задач используются свойства объекта CustomTaskPane и определяется обработчик событий DockPositionChanged. Для компиляции этого примера скопируйте код в класс ThisAddIn в проекте надстройки приложения, которое поддерживает настраиваемые области задач. Замените метод по умолчанию ThisAddIn_Startup в классе ThisAddIn методом ThisAddIn_Startup из этого примера. В данном примере также предполагается, что в проекте содержится элемент управления UserControl с именем MyUserControl, а элемент управления UserControl, в свою очередь, содержит элемент управления FlowLayoutPanel с именем FlowPanel.

Private myUserControl1 As MyUserControl
Private WithEvents myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

    myUserControl1 = New MyUserControl()
    myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "New Task Pane")

    With myCustomTaskPane
        .DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionFloating
        .Height = 500
        .Width = 500
        .DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight
        .Width = 300
        .Visible = True
    End With
End Sub

Private Sub myCustomTaskPane_DockPositionChanged(ByVal sender As Object, _
    ByVal e As EventArgs) Handles myCustomTaskPane.DockPositionChanged

    Dim taskPane As Microsoft.Office.Tools.CustomTaskPane = _
        TryCast(sender, Microsoft.Office.Tools.CustomTaskPane)

    If taskPane IsNot Nothing Then

        ' Adjust sizes of user control and flow panel to fit current task pane size.
        Dim userControl As MyUserControl = TryCast(taskPane.Control, MyUserControl)
        Dim paneSize As System.Drawing.Size = _
            New System.Drawing.Size(taskPane.Width, taskPane.Height)
        userControl.Size = paneSize
        userControl.FlowPanel.Size = paneSize

        ' Adjust flow direction of controls on the task pane.
        If taskPane.DockPosition = _
            Office.MsoCTPDockPosition.msoCTPDockPositionTop Or _
            taskPane.DockPosition = _
            Office.MsoCTPDockPosition.msoCTPDockPositionBottom Then

            userControl.FlowPanel.FlowDirection = _
                System.Windows.Forms.FlowDirection.LeftToRight
        Else
            userControl.FlowPanel.FlowDirection = _
                System.Windows.Forms.FlowDirection.TopDown
        End If
    End If
End Sub
private MyUserControl myUserControl1;
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    myUserControl1 = new MyUserControl();
    myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1,
        "New Task Pane");

    myCustomTaskPane.DockPosition =
        Office.MsoCTPDockPosition.msoCTPDockPositionFloating;
    myCustomTaskPane.Height = 500;
    myCustomTaskPane.Width = 500;

    myCustomTaskPane.DockPosition =
        Office.MsoCTPDockPosition.msoCTPDockPositionRight;
    myCustomTaskPane.Width = 300;

    myCustomTaskPane.Visible = true;
    myCustomTaskPane.DockPositionChanged +=
        new EventHandler(myCustomTaskPane_DockPositionChanged);
}

private void myCustomTaskPane_DockPositionChanged(object sender, EventArgs e)
{
    Microsoft.Office.Tools.CustomTaskPane taskPane =
        sender as Microsoft.Office.Tools.CustomTaskPane;

    if (taskPane != null)
    {
        // Adjust sizes of user control and flow panel to fit current task pane size.
        MyUserControl userControl = taskPane.Control as MyUserControl;
        System.Drawing.Size paneSize = new System.Drawing.Size(taskPane.Width, taskPane.Height);
        userControl.Size = paneSize;
        userControl.FlowPanel.Size = paneSize;

        // Adjust flow direction of controls on the task pane.
        if (taskPane.DockPosition == 
            Office.MsoCTPDockPosition.msoCTPDockPositionTop ||
            taskPane.DockPosition ==
            Office.MsoCTPDockPosition.msoCTPDockPositionBottom)
        {
            userControl.FlowPanel.FlowDirection =
                System.Windows.Forms.FlowDirection.LeftToRight;
        }
        else
        {
            userControl.FlowPanel.FlowDirection =
                System.Windows.Forms.FlowDirection.TopDown;
        }
    }
}

Иерархия наследования

System.Object
  Microsoft.Office.Tools.CustomTaskPane

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

CustomTaskPane - члены

Microsoft.Office.Tools - пространство имен

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

Приступая к программированию надстроек на уровне приложения

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

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

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

Руководство. Автоматизация приложения в настраиваемой области задач