共用方式為


CustomTaskPane 介面

表示 Microsoft Office 應用程式中的自訂工作窗格。

命名空間:  Microsoft.Office.Tools
組件:  Microsoft.Office.Tools.Common (在 Microsoft.Office.Tools.Common.dll 中)

語法

'宣告
<GuidAttribute("881b42fd-484d-4494-8500-779de4e4aac1")> _
Public Interface CustomTaskPane _
    Inherits IDisposable
[GuidAttribute("881b42fd-484d-4494-8500-779de4e4aac1")]
public interface CustomTaskPane : IDisposable

CustomTaskPane 型別會公開下列成員。

屬性

  名稱 說明
公用屬性 Control 取得提供自訂工作窗格使用者介面的 UserControl
公用屬性 DockPosition 取得或設定值,指定自訂工作窗格相對於應用程式視窗的位置。
公用屬性 DockPositionRestrict 取得或設定值,防止自訂工作窗格停駐在指定的位置上。
公用屬性 Height 取得或設定自訂工作窗格的高度 (以點為單位)。
公用屬性 Title 取得自訂工作窗格的標題。
公用屬性 Visible 取得或設定指定自訂工作窗格是否可見的值。
公用屬性 Width 取得或設定自訂工作窗格的寬度 (以點為單位)。
公用屬性 Window 取得與自訂工作窗格關聯的文件視窗。

回頁首

方法

  名稱 說明
公用方法 Dispose 執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。 (繼承自 IDisposable)。

回頁首

事件

  名稱 說明
公用事件 DockPositionChanged 當使用者變更自訂工作窗格的停駐位置時,或程式碼變更 DockPosition 屬性值時發生。
公用事件 VisibleChanged 當使用者顯示或關閉自訂工作窗格時,或在程式碼變更 Visible 屬性值時發生。

回頁首

備註

您可使用應用程式層級增益集中的 CustomTaskPane 物件來修改自訂工作窗格,或是在自訂工作窗格的位置或可視性變更時回應。 工作窗格係指通常停駐在應用程式視窗一側的使用者介面面板。 如需如何建立自訂工作窗格的詳細資訊,請參閱自訂工作窗格概觀

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

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

注意事項注意事項

此介面是由 Visual Studio Tools for Office Runtime 所實作, 並不能實作於您的程式碼中。 如需詳細資訊,請參閱 Visual Studio Tools for Office Runtime 概觀

使用方式

本文件說明此型別用於以 .NET Framework 4 為目標之 Office 專案的版本。在以 .NET Framework 3.5 為目標的專案中,此型別可能會有不同的成員,而為此型別提供的程式碼範例可能無法運作。 如需此型別在以 .NET Framework 3.5 為目標之專案中的相關文件,請參閱下列 Visual Studio 2008 文件中的參考章節:https://go.microsoft.com/fwlink/?LinkId=160658 (英文)。

範例

下列程式碼範例示範如何使用 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;
        }
    }
}

請參閱

參考

Microsoft.Office.Tools 命名空間

其他資源

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

自訂工作窗格概觀

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

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

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