#文章保存
從:Wayback Machine
撈回來


自訂工作窗格概觀

Visual Studio 2010

工作窗格是使用者介面面板,通常停駐在 Microsoft Office 應用程式視窗的某一側。 自訂工作窗格為您提供建立個人專屬工作窗格的方法,也為使用者提供了熟悉的介面,供他們用來存取您方案的功能。 例如,介面中可以包含控制項,而這些控制項則會執行程式碼來修改文件或顯示資料來源中的資料。

適用於:本主題中的資訊適用於下列應用程式的應用程式層級專案:Excel 2007 和 Excel 2010、InfoPath 2007 和 InfoPath 2010、Outlook 2007 和 Outlook 2010、PowerPoint 2007 和 PowerPoint 2010、Word 2007 和 Word 2010。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

注意事項注意事項

自訂工作窗格與執行窗格不同; 而執行窗格則屬於 Microsoft Office Word 和 Microsoft Office Excel 之文件層級自訂的一部分。 如需詳細資訊,請參閱執行窗格概觀

自訂工作窗格可以讓您將功能整合成熟悉的使用者介面。 您可以利用 Visual Studio 工具快速建立自訂工作窗格。

熟悉的使用者介面

Microsoft Office System 應用程式的使用者已經十分熟悉工作窗格的用法,例如 Word 中的 [樣式與格式] 工作窗格。 自訂工作窗格的行為與 Microsoft Office System 的其他工作窗格相同。 使用者可以讓自訂工作窗格停駐在應用程式視窗的不同側,也可以將自訂工作窗格拖曳到視窗中的任何位置。 您可以建立同時顯示多個自訂工作窗格的增益集,而且使用者可以個別控制每個工作窗格。

Windows Form 支援

您以 Visual Studio 中的 Office 開發工具建立的自訂工作窗格使用者介面是以 Windows Forms 控制項為基礎。 您可以使用熟悉的 Windows Form 設計工具設計自訂工作窗格的使用者介面, 也可以使用 Windows Form 中的資料繫結 (Data Binding) 支援,將資料來源繫結至工作窗格上的控制項。

您可以利用下列兩個步驟建立基本的自訂工作窗格:

  1. 將 Windows Form 控制項加入至 UserControl 物件,以建立自訂工作窗格的使用者介面。

  2. 將使用者控制項傳遞給增益集中的 CustomTaskPaneCollection 物件,以執行個體化自訂工作窗格。 這個集合會傳回可以用來修改工作窗格外觀以及回應使用者事件的新 CustomTaskPane 物件。

如需逐步程序的詳細資訊,請參閱 HOW TO:在應用程式中加入自訂工作窗格

建立使用者介面

所有以 Visual Studio 中的 Office 開發工具建立的自訂工作窗格都會包含 UserControl 物件。 這個使用者控制項提供了自訂工作窗格的使用者介面。 您可以在設計階段或執行階段建立此使用者控制項。 如果您在設計階段建立此使用者控制項,可以使用 Windows Form 設計工具建構工作窗格的使用者介面。

具現化自訂工作窗格

建立包含自訂工作窗格使用者介面的使用者控制項之後,您必須具現化 CustomTaskPane 如果要進行具現化,請呼叫其中一個 Add 方法,以便將使用者控制項傳遞至增益集中的 CustomTaskPaneCollection 此集合會公開 (Expose) 為 ThisAddIn 類別的 CustomTaskPanes 欄位。 下列程式碼範例適合從 ThisAddIn 類別執行。

myUserControl1 = New MyUserControl
myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "My Task Pane")
myCustomTaskPane.Visible = True

Add 方法會傳回新的 CustomTaskPane 物件。 您可以使用這個物件修改工作窗格的外觀,並回應使用者事件。

在多個視窗中控制工作窗格

自訂工作窗格會與文件框架視窗產生關聯,而該框架視窗會對使用者呈現文件或項目的檢視。 看得見相關聯的視窗時才看得見工作窗格。

若要判斷顯示自訂工作窗格的視窗,當您建立工作窗格時,請使用適當的 Add 方法多載:

某些 Office 應用程式需要明確指示何時建立或開啟多個視窗時顯示工作窗格。 因此一定要考慮在何處具現化程式碼中的自訂工作窗格,以確保工作窗格會在應用程式中顯示適當的文件或項目。 如需詳細資訊,請參閱管理多個應用程式視窗中的自訂工作窗格

如果您要從使用者控制項自動化應用程式,可以使用程式碼中的 Globals.ThisAddIn.Application 直接存取物件模型。 靜態 Globals 類別會提供對 ThisAddIn 物件的存取。 這個物件的 Application 欄位為應用程式之物件模型的進入點 (Entry Point)。

如需 ThisAddIn 物件之 Application 欄位的詳細資訊,請參閱應用程式層級增益集程式設計 如需示範如何從自訂工作窗格自動化應用程式的逐步解說,請參閱逐步解說:運用自訂工作窗格自動化應用程式 如需 Globals 類別的詳細資訊,請參閱全域存取 Office 專案中的物件

在您建立工作窗格之後,可以使用 CustomTaskPane 物件的屬性和事件來控制工作窗格的使用者介面,以及在使用者變更工作窗格時予以回應。

顯示自訂工作窗格

根據預設,工作窗格為隱藏狀態。 若要顯示工作窗格,您必須將 Visible 設定為 true

使用者也可以按一下工作窗格角落的 [關閉] 按鈕 (X),隨時關閉工作窗格。 但是,無法透過任何預設方法再次開啟自訂工作窗格。 如果使用者關閉了自訂工作窗格,除非您提供顯示工作窗格的方法,否則使用者將無法再次檢視該自訂工作窗格。

如果在增益集中建立自訂工作窗格,則應同時建立 UI 項目,例如使用者可以按一下來顯示或隱藏自訂工作窗格的按鈕。 如果您在支援自訂功能區的 Microsoft Office 應用程式中建立自訂工作窗格,可以將控制項群組加入至其按鈕可顯示或隱藏自訂工作窗格的功能區。 如需示範如何這麼做的逐步解說,請參閱逐步解說:使用功能區按鈕同步處理自訂工作窗格

如果您在不支援自訂功能區的 Microsoft Office 應用程式中建立自訂工作窗格,則可加入用來顯示或隱藏自訂工作窗格的 CommandBarButton

修改工作窗格的外觀

您可以使用 CustomTaskPane 物件的屬性,控制自訂工作窗格的大小和位置。 您還可以使用包含在自訂工作窗格內之 UserControl 物件的屬性,對自訂工作窗格的外觀進行其他多項變更。 例如,您可以使用使用者控制項的 BackgroundImage 屬性,指定自訂工作窗格的背景影像。

下表列出可以使用 CustomTaskPane 屬性進行的自訂工作窗格變更。

工作

屬性

若要變更工作窗格的大小

Height

Width

若要變更工作窗格的位置

DockPosition

若要隱藏或顯示工作窗格

Visible

若要避免使用者變更工作窗格的位置

DockPositionRestrict

進行自訂工作窗格事件的程式設計

您可能希望增益集能夠在使用者修改自訂工作窗格時做出回應。 例如,如果使用者將窗格從垂直方向改成水平方向,您可能會想要重新調整控制項的位置。

下表列出您可以處理的事件,以回應使用者對自訂工作窗格所進行的變更。

工作

事件

若要在使用者變更工作窗格的位置時回應。

DockPositionChanged

若要在使用者隱藏或顯示工作窗格時回應。

VisibleChanged

在您建立自訂工作窗格之後,只要增益集在執行中,CustomTaskPane 物件就會留在記憶體中。 甚至在使用者按一下工作窗格角落的 [關閉] 按鈕 (X) 後,此物件仍會留在記憶體中。

若要在增益集仍執行時清除工作窗格使用的資源,請使用 RemoveRemoveAt 方法。 這些方法會從 CustomTaskPanes 集合中移除指定的 CustomTaskPane 物件,並且呼叫該物件的 Dispose 方法。

當增益集卸載時,Visual Studio Tools for Office Runtime 會自動清除自訂工作窗格使用的資源。 請不要在專案的 ThisAddIn_Shutdown 事件處理常式中呼叫 RemoveRemoveAt 方法。 這些方法會擲回 ObjectDisposedException,因為 Visual Studio Tools for Office Runtime 會在呼叫 ThisAddIn_Shutdown 之前先清除 CustomTaskPane 物件使用的資源。 如需 ThisAddIn_Shutdown 的詳細資訊,請參閱Office 專案中的事件


 

當前版本:自訂工作窗格

 

文章標籤
創作者介紹
創作者 Robert 的頭像
Robert

Robert 的部落格

Robert 發表在 痞客邦 留言(0) 人氣()