執行窗格概觀
更新:2007 年 11 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
執行窗格指的是附加至特定 Microsoft Office Word 文件或 Microsoft Office Excel 活頁簿的可自訂 [文件動作] 工作窗格。它會與其他內建的工作窗格 (例如 Excel 中的 [XML 原始檔] 工作窗格或 Word 中的 [樣式與格式] 工作窗格) 裝載在 Office 工作窗格中。您可以使用 Windows Form 控制項或 WPF 控制項來設定執行窗格使用者介面。
您只能在 Word 或 Excel 的文件層級自訂中,建立執行窗格。您不能在應用程式層級增益集中,建立執行窗格。如需詳細資訊,請參閱依應用程式和專案類型提供的功能。
注意事項: |
---|
執行窗格與自訂工作窗格不同。自訂工作窗格與應用程式關聯,而不是與特定文件相關聯。您可以將自訂工作窗格加入至適用於 2007 Microsoft Office System 的應用程式層級增益集。如需詳細資訊,請參閱自訂工作窗格概觀。 |
顯示執行窗格
執行窗格是由 ActionsPane 類別所表示。當您建立文件層級專案時,可以藉由在專案中使用 ThisWorkbook (適用於 Excel) 或 ThisDocument (適用於 Word) 類別的 ActionsPane 欄位,在程式碼中使用這個類別的執行個體。若要顯示執行窗格,請將 Windows Form 控制項加入至 ActionsPane 欄位的 Controls 屬性。下列程式碼範例會將名為 actions 的控制項加入至執行窗格。
Me.ActionsPane.Controls.Add(actions)
this.ActionsPane.Controls.Add(actions);
執行窗格會在您加入控制項時立即於執行階段顯示。在執行窗格顯示後,可以動態新增或移除控制項,以回應使用者的動作。通常,是在 ThisDocument 或 ThisWorkbook 的 Startup 事件處理常式中,加入顯示執行窗格的程式碼,以便使用者第一次開啟文件時,可以看見執行窗格。不過,您可能只想在回應文件中的使用者動作時顯示執行窗格。例如,可以將程式碼加入至文件上控制項的 Click 事件。
將多個控制項加入至執行窗格
如果您要將多個控制項加入至執行窗格,在大多數的情況下,您應該將控制項群組在一個使用者控制項中,然後將此使用者控制項加入至 Controls 屬性。這個程序包括下列步驟:
將 [執行窗格控制項] 或 [使用者控制項] 項目加入至專案,建立執行窗格的使用者介面 (UI)。這兩個項目都包含自訂 Windows Form UserControl 類別。[執行窗格控制項] 和 [使用者控制項] 項目相等,唯一的差異在於名稱。
使用設計工具或撰寫程式碼,將 Windows Form 控制項加入至 UserControl。
注意事項: 您也可以將 WPF System.Windows.Controls.UserControl 加入至 Windows Form UserControl,而將 WPF 控制項加入至執行窗格。如需詳細資訊,請參閱在 Office 方案中使用 WPF 控制項。
將自訂使用者控制項的執行個體加入至專案內 ThisWorkbook (適用於 Excel) 或 ThisDocument (適用於 Word) 類別之 ActionsPane 欄位所包含的控制項。
如需詳細示範這個程序的範例,請參閱 HOW TO:將執行窗格加入至 Word 文件和 HOW TO:將執行窗格加入至 Excel 活頁簿。
隱藏執行窗格
雖然 ActionsPane 類別含有 Hide 方法和 Visible 屬性,不過您無法使用 ActionsPane 類別本身的任何成員,移除使用者介面中的執行窗格。呼叫 Hide 方法或將 Visible 屬性設定為 false 只會隱藏執行窗格上的控制項,並不會隱藏執行窗格。
您有數個選項可隱藏方案中的工作窗格:
針對 Word,請將表示 [文件動作] 工作窗格之 TaskPane 物件的 Visible 屬性設定為 false。下列程式碼範例適合從專案中的 ThisDocument 類別執行。
Me.Application.TaskPanes(Word.WdTaskPanes.wdTaskPaneDocumentActions).Visible = False
this.Application.TaskPanes[Word.WdTaskPanes.wdTaskPaneDocumentActions].Visible = false;
針對 Excel,請將 Application 物件的 DisplayDocumentActionTaskPane 屬性設定為 false。下列程式碼範例適合從專案中的 ThisWorkbook 類別執行。
Me.Application.DisplayDocumentActionTaskPane = False
this.Application.DisplayDocumentActionTaskPane = false;
對於 Word 或 Excel,您也可以選擇將表示工作窗格之命令列的 CommandBar.Visible 屬性設定為 false。下列程式碼範例適合從專案中的 ThisDocument 或 ThisWorkbook 類別執行。
Me.Application.CommandBars("Task Pane").Visible = False
this.Application.CommandBars["Task Pane"].Visible = false;
在文件開啟時清除執行窗格
如果使用者在執行窗格顯示時儲存文件,則不論執行窗格是否包含任何控制項,每次該開啟文件時都會顯示執行窗格。如果您希望控制執行窗格出現的時機,請在 ThisDocument 或 ThisWorkbook 的 Startup 事件處理常式中呼叫 ActionsPane 欄位的 Clear 方法,以確保文件開啟時不會顯示執行窗格。
決定關閉執行窗格的時機
當執行窗格關閉時不會引發事件。雖然 ActionsPane 類別具有 VisibleChanged 事件,但使用者關閉執行窗格時不會引發這個事件。藉由呼叫 Hide 方法或將 Visible 屬性設定為 false,隱藏執行窗格上的控制項時,才會引發這個事件。
如果使用者關閉執行窗格,該使用者可以在應用程式的使用者介面 (UI) 執行下列其中一個程序,再次顯示執行窗格。
若要使用 Word 2007 或 Excel 2007 的 UI 顯示執行窗格
按一下 [功能區] 上的 [檢視] 索引標籤。
按一下 [顯示/隱藏] 群組中的 [文件動作] 切換按鈕。
若要使用 Word 2003 或 Excel 2003 的 UI 顯示執行窗格
按一下 [檢視] 功能表上的 [工作窗格]。
如果是顯示 [文件動作] 以外的工作窗格,請按一下工作窗格頂端附近的 [其他工作窗格] 按鈕,然後按一下 [文件動作]。
進行執行窗格事件的程式設計
您可以將多個使用者控制項加入執行窗格,然後撰寫程式碼,藉由顯示和隱藏使用者控制項,回應文件上的事件。如果將 XML 結構描述項目對應至文件,就可以在每次插入點停留在其中一個 XML 項目內時,在執行窗格中顯示某些使用者控制項。如需詳細資訊,請參閱逐步解說:根據使用者內容變更執行窗格、HOW TO:在 Visual Studio 內將結構描述對應至 Word 文件和 HOW TO:在 Visual Studio 內將結構描述對應至工作表。
您也可以撰寫程式碼,回應任何物件的事件,包含主控制項、應用程式或文件事件。如需詳細資訊,請參閱逐步解說:針對 NamedRange 控制項的事件進行程式設計。
將資料繫結至執行窗格上的控制項
執行窗格上的控制項與 Windows Form 上的控制項具有相同的資料繫結能力。您可以將控制項繫結至資料來源,例如資料集、具型別資料集和 XML。如需詳細資訊,請參閱資料繫結和 Windows Form。
您可以將執行窗格上的控制項和文件上的控制項繫結至相同的資料集。例如,您可以建立執行窗格上的控制項與工作表上的控制項之間的主從式 (Master/Detail) 關聯。如需詳細資訊,請參閱逐步解說:將資料繫結至 Excel 執行窗格上的控制項。
驗證執行窗格控制項中的資料
如果您在執行窗格之控制項的 Validating 事件處理常式中顯示訊息方塊,當焦點從控制項移至訊息方塊時,可能會再次引發事件。若要避免這個問題,請使用 ErrorProvider 控制項來顯示任何驗證錯誤訊息。
使用者控制項堆疊順序
如果使用多個使用者控制項,則可以撰寫程式碼,以在執行窗格上適當地堆疊使用者控制項,無論執行窗格採垂直或水平停駐。您可以使用 StackOrder 屬性的 StackStyle 列舉型別 (Enumeration),在執行窗格上設定使用者控制項的堆疊順序。如需詳細資訊,請參閱 HOW TO:管理執行窗格的控制項配置
StackOrder 屬性可接受以下列舉型別。
堆疊樣式 |
定義 |
---|---|
從執行窗格的底部開始堆疊。 |
|
從執行窗格的左邊開始堆疊。 |
|
從執行窗格的右邊開始堆疊。 |
|
從執行窗格的上方開始堆疊。 |
|
未定義堆疊順序,可由開發人員控制。 |
下列程式碼會設定 StackOrder 屬性,從執行窗格的上方堆疊使用者控制項。
Me.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop
this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop;
錨定控制項
如果使用者在執行階段調整執行窗格大小,控制項則可隨執行窗格調整大小。您可以使用 Windows Form 控制項的 Anchor 屬性,將控制項錨定至執行窗格。您也可以使用相同方式,將 Windows Form 控制項錨定至使用者控制項。如需詳細資訊,請參閱 HOW TO:錨定 Windows Form 上的控制項。
調整執行窗格的大小
因為 ActionsPane 是內嵌於工作窗格中,所以您無法直接變更 ActionsPane 的大小。但是,您可以藉由設定表示工作窗格之 CommandBar 的 Width 屬性,以程式設計方式變更工作窗格的寬度。如果工作窗格是以水平方向停駐或者是浮動的,您就可以變更它的高度。
因為使用者應該能夠選取最符合他們需求的工作窗格大小,所以通常不建議您以程式設計方式調整工作窗格的大小。但是,如果您必須調整工作窗格的寬度,可以使用下列程式碼來完成這項工作。
Me.CommandBars("Task Pane").Width = 200
this.CommandBars["Task Pane"].Width = 200;
調整執行窗格的位置
因為 ActionsPane 是內嵌於工作窗格中,所以您無法直接調整它的位置。但是,您可以藉由設定表示工作窗格之 CommandBar 的 Position 屬性,以程式設計方式移動工作窗格。
因為使用者應該能夠根據他們的需求,選擇工作窗格在螢幕上的位置,所以通常不建議您以程式設計方式調整工作窗格的位置。不過,如果您必須將工作窗格移至特定位置,可以使用下列程式碼來達成此工作。
Me.CommandBars("Task Pane").Position = _
Microsoft.Office.Core.MsoBarPosition.msoBarLeft
this.CommandBars["Task Pane"].Position =
Microsoft.Office.Core.MsoBarPosition.msoBarLeft;
注意事項: |
---|
使用者可以隨時手動調整工作窗格的位置。目前沒有任何方式可確保工作窗格會保持停駐在您以程式設計方式指定的位置。但是,您可以檢查方向變更並確保執行窗格上的控制項會以正確方向堆疊。如需詳細資訊,請參閱 HOW TO:管理執行窗格的控制項配置。 |
設定 ActionsPane 的 Top 和 Left 屬性並不會變更其位置,因為 ActionsPane 物件內嵌於工作窗格中。
如果工作窗格並未停駐,您就可以設定表示工作窗格之 CommandBar 的 Top 和 Left 屬性。下列程式碼會將未停駐的工作窗格移至文件的左上角。
If Me.CommandBars("Task Pane").Position = _
Microsoft.Office.Core.MsoBarPosition.msoBarFloating Then
Me.CommandBars("Task Pane").Top = 0
Me.CommandBars("Task Pane").Left = 0
End If
if (this.CommandBars["Task Pane"].Position ==
Microsoft.Office.Core.MsoBarPosition.msoBarLeft)
{
this.CommandBars["Task Pane"].Top = 0;
this.CommandBars["Task Pane"].Left = 0;
}