Share via


CustomTaskPane 類別 (2007 系統)

更新:2007 年 11 月

表示 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 類別來修改自訂工作窗格,或是在自訂工作窗格的位置或可視性變更時回應。

若要控制自訂工作窗格的大小或位置,您可以使用諸如 HeightWidthVisible 等屬性。

若要在自訂工作窗格移動或變更可視性時做出回應,您可以處理 DockPositionChangedVisibleChanged 事件。

工作窗格係指通常停駐在應用程式視窗一側的使用者介面面板。如需如何建立自訂工作窗格的詳細資訊,請參閱自訂工作窗格概觀

範例

下列程式碼範例示範如何使用 Add(UserControl, String) 方法建立自訂工作窗格。這個範例會使用 CustomTaskPane 物件的屬性來設定自訂工作窗格的預設外觀,並定義 DockPositionChanged 事件的事件處理常式。若要編譯此範例,請在支援自訂窗格之應用程式的增益集專案中,將程式碼複製到 ThisAddIn 類別中。使用此範例中的 ThisAddIn_Startup 方法取代 ThisAddIn 類別中預設的 ThisAddIn_Startup 方法。這個範例也會假設專案包含名為 MyUserControl 的 UserControl,而且 UserControl 包含名為 FlowPanel 的 FlowLayoutPanel

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

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

CustomTaskPane 成員

Microsoft.Office.Tools 命名空間

其他資源

應用程式層級增益集程式設計入門

自訂工作窗格概觀

管理多個應用程式視窗中的自訂工作窗格

HOW TO:在應用程式中加入自訂工作窗格

逐步解說:運用自訂工作窗格自動化應用程式