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 物件來修改自訂工作窗格,或是在自訂工作窗格的位置或可視性變更時回應。 工作窗格係指通常停駐在應用程式視窗一側的使用者介面面板。 如需如何建立自訂工作窗格的詳細資訊,請參閱自訂工作窗格概觀。
若要控制自訂工作窗格的大小或位置,您可以使用諸如 Height、Width 和 Visible 等屬性。
若要在自訂工作窗格移動或變更可視性時做出回應,您可以處理 DockPositionChanged 和 VisibleChanged 事件。
注意事項 |
---|
此介面是由 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;
}
}
}