다음을 통해 공유


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 클래스를 사용하여 사용자 지정 작업 창을 수정할 수도 있고, 사용자 지정 작업 창의 위치 또는 표시 여부가 변경되는 경우에 응답할 수도 있습니다.

사용자 지정 작업 창의 크기나 위치를 제어하려면 Height, WidthVisible 등의 속성을 사용합니다.

사용자 지정 작업 창이 이동하거나 표시 여부가 변경되는 경우에 응답하려면 DockPositionChangedVisibleChanged 이벤트를 처리합니다.

작업 창은 일반적으로 응용 프로그램 창의 한 쪽에 도킹되는 사용자 인터페이스 패널입니다. 사용자 지정 작업 창을 만드는 방법에 대한 자세한 내용은 사용자 지정 작업 창 개요를 참조하십시오.

예제

다음 코드 예제에서는 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 네임스페이스

기타 리소스

응용 프로그램 수준 추가 기능 프로그래밍 시작

사용자 지정 작업 창 개요

여러 응용 프로그램 창의 사용자 지정 작업 창 관리

방법: 응용 프로그램에 사용자 지정 작업 창 추가

연습: 사용자 지정 작업 창을 사용하여 응용 프로그램 자동화