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, Width 및 Visible 등의 속성을 사용합니다.
사용자 지정 작업 창이 이동하거나 표시 여부가 변경되는 경우에 응답하려면 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) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.