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_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) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。