次の方法で共有


CustomTaskPane クラス (2007 System)

更新 : 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 などのプロパティを使用します。

カスタム作業ウィンドウの移動や外観の変更に応答するには、DockPositionChanged イベントおよび VisibleChanged イベントを処理します。

作業ウィンドウは、アプリケーション ウィンドウのいずれかの端に通常ドッキングされているユーザー インターフェイス パネルです。カスタム作業ウィンドウの作成方法の詳細については、「カスタム作業ウィンドウの概要」を参照してください。

次のコード例は、Add(UserControl, String) メソッドを使用してカスタム作業ウィンドウを作成する方法を示します。このコード例では、CustomTaskPane オブジェクトのプロパティを使用してカスタム作業ウィンドウの既定の外観を設定し、DockPositionChanged イベントのイベント ハンドラを定義します。このコード例をコンパイルするには、カスタム作業ウィンドウをサポートしているアプリケーション用のアドイン プロジェクトの ThisAddIn クラスにコードをコピーします。 ThisAddIn クラスの既定の ThisAddIn_Startup メソッドを、このコード例の 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

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

参照

参照

CustomTaskPane メンバ

Microsoft.Office.Tools 名前空間

その他の技術情報

アプリケーション レベルのアドインのプログラミングについて

カスタム作業ウィンドウの概要

複数のアプリケーション ウィンドウでカスタム作業ウィンドウを管理する

方法 : カスタム作業ウィンドウをアプリケーションに追加する

チュートリアル : カスタム作業ウィンドウからのアプリケーションの自動化