Freigeben über


CustomTaskPane-Klasse (2007 System)

Aktualisiert: November 2007

Stellt einen benutzerdefinierten Aufgabenbereich in einer Microsoft Office-Anwendung dar.

Namespace:  Microsoft.Office.Tools
Assembly:  Microsoft.Office.Tools.Common.v9.0 (in Microsoft.Office.Tools.Common.v9.0.dll)

Syntax

Public NotInheritable Class CustomTaskPane _
    Implements IDisposable

Dim instance As CustomTaskPane
public sealed class CustomTaskPane : IDisposable

Hinweise

Verwenden Sie die CustomTaskPane-Klasse in einem Add-In auf Anwendungsebene, um einen benutzerdefinierten Aufgabenbereich zu ändern oder auf Änderungen der Position oder Sichtbarkeit des benutzerdefinierten Aufgabenbereichs zu reagieren.

Um Größe oder Position des benutzerdefinierten Aufgabenbereichs zu steuern, können Sie beispielsweise die Eigenschaften Height, Width und Visible verwenden.

Um auf Änderungen der Position oder Sichtbarkeit des benutzerdefinierten Aufgabenbereichs zu reagieren, können Sie das DockPositionChanged-Ereignis und das VisibleChanged-Ereignis behandeln.

Aufgabenbereiche sind Bereiche der Benutzeroberfläche, die i. d. R. an eine Seite eines Anwendungsfensters angedockt sind. Informationen zum Erstellen von benutzerdefinierten Aufgabenbereichen finden Sie unter Übersicht über benutzerdefinierte Aufgabenbereiche.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe der Add(UserControl, String)-Methode ein benutzerdefinierter Aufgabenbereich erstellt wird. Im Beispiel wird die Standarddarstellung des benutzerdefinierten Aufgabenbereichs mithilfe von Eigenschaften des CustomTaskPane-Objekts festgelegt, und es wird ein Ereignishandler für das DockPositionChanged-Ereignis definiert. Um dieses Beispiel zu kompilieren, kopieren Sie den Code in die ThisAddIn-Klasse in einem Add-In-Projekt für eine Anwendung, die benutzerdefinierte Aufgabenbereiche unterstützt. Ersetzen Sie die ThisAddIn_Startup-Standardmethode in der ThisAddIn-Klasse durch die ThisAddIn_Startup-Methode in diesem Beispiel. In diesem Codebeispiel wird außerdem davon ausgegangen, dass das Projekt ein UserControl mit dem Namen MyUserControl enthält und das UserControl ein FlowLayoutPanel mit dem Namen FlowPanel enthält.

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;
        }
    }
}

Vererbungshierarchie

System.Object
  Microsoft.Office.Tools.CustomTaskPane

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

CustomTaskPane-Member

Microsoft.Office.Tools-Namespace

Weitere Ressourcen

Erste Schritte beim Programmieren von Add-Ins auf Anwendungsebene

Übersicht über benutzerdefinierte Aufgabenbereiche

Verwalten von benutzerdefinierten Aufgabenbereichen in mehreren Anwendungsfenstern

Gewusst wie: Hinzufügen eines benutzerdefinierten Aufgabenbereichs zu einer Anwendung

Exemplarische Vorgehensweise: Automatisieren einer Anwendung über einen benutzerdefinierten Aufgabenbereich