操作方法:使用表單視窗
以程式設計方式使用 InfoPath 表單時,您可以撰寫程式碼以存取表單的視窗,然後自訂視窗所包含的某些項目。Microsoft.Office.InfoPath 命名空間所提供的 InfoPath 物件模型可支援透過使用 Window 類別搭配 WindowCollection 類別來存取表單的視窗。
InfoPath 中有兩種視窗類型:
使用者填寫表單時所使用的編輯視窗。
使用者設計表單範本時所使用的設計視窗。
在表單範本中撰寫程式碼時,編輯視窗會提供最有用的功能,因為您可以使用表示目前視窗的 Window 物件來存取可用於自訂表單編輯經驗的各種屬性及方法。
WindowsCollection 類別的概觀
WindowsCollection 類別提供下列屬性,讓表單範本開發人員可用來管理此類別所包含的 Window 物件。
名稱 | 描述 |
---|---|
Count 屬性 |
會取得集合中所包含的 Window 物件計數。 |
Item 屬性 |
會取得指定 Window 物件的參照。 |
Window 類別的概觀
Window 類別提供下列方法與屬性,可讓表單開發人員用來與 InfoPath 視窗互動。這些方法和屬性的支援會因您所使用的視窗類型 (WindowType) 而有所不同。有些方法和屬性只能搭配編輯器視窗類型 (WindowType.Editor) 使用;其餘的方法與屬性則可搭配編輯器視窗類型與設計工具視窗類型 (WindowType.Designer) 使用。此外,與 InfoPath 物件模型成員相同,從表單範本呼叫時,方法與屬性的支援會因安全性層級以及表單的部署方式而異。
名稱 | 描述 | 視窗類型支援 |
---|---|---|
Activate 方法 |
會啟動 (提供焦點給) 視窗。 |
Designer 與 Editor 類型 |
Active 屬性 |
會取得 Boolean 值,指出視窗是否為目前使用中的視窗。 |
Designer 與 Editor 類型 |
Caption 屬性 |
會取得或設定 Window 物件表示之視窗的標題文字。 |
僅 Editor 類型 |
Close 方法 |
會關閉提示儲存對未儲存表單所做變更的視窗,或含有尚未儲存之變更的表單。 |
僅 Editor 類型 |
Close 方法 |
會關閉視窗,並選擇性地強制關閉未儲存的表單或包含未儲存之變更的表單,並且不加以儲存。 |
僅 Editor 類型 |
CommandBars 屬性 |
會取得與此視窗關聯之 Microsoft Office CommandBars 集合的參考。 |
Designer 與 Editor 類型 |
Height 屬性 |
會取得或設定視窗的高度 (以點為單位)。 |
Designer 與 Editor 類型 |
Left 屬性 |
會取得或設定視窗的水平位置 (以點為單位)。 |
Designer 與 Editor 類型 |
MailEnvelope 屬性 |
會取得 MailEnvelope 類別的參考。 |
僅 Editor 類型 |
TaskPanes 屬性 |
會取得 TaskPaneCollection 集合的參考。 |
Designer 與 Editor 類型 |
Top 屬性 |
會取得或設定視窗的垂直位置 (以點為單位)。 |
Designer 與 Editor 類型 |
Width 屬性 |
會取得或設定視窗的寬度 (以點為單位)。 |
Designer 與 Editor 類型 |
WindowState 屬性 |
會取得或設定視窗的狀態,以 WindowState 值表示。 |
Designer 與 Editor 類型 |
WindowType 屬性 |
會取得視窗的類型,以 WindowType 列舉值表示。 |
Designer 與 Editor 類型 |
XmlForm 屬性 |
會傳回與視窗關聯之 XmlForm 物件的參考。 |
僅 Editor 類型 |
使用 WindowsCollection 與 Window 類別
WindowsCollection 類別可以透過 Application 類別的 Windows 屬性來存取。使用 WindowsCollection 類別來存取表單的視窗時,您可以使用索引子 (Visual C#) 或是傳遞長整數至 Item 屬性 (Visual Basic),以便傳回 Window 物件執行個體的參照。例如,下列程式碼會設定目前 InfoPath 工作階段之第一個 Window 物件 (包含在 WindowsCollection 中) 的參照。
Window myWindow = this.Application.Windows[0];
Dim myWindow As Window = Me.Application.Windows(0)
您可以使用 Application 類別的 ActiveWindow 屬性直接存取目前開啟的視窗,而不必經由 WindowsCollection 來存取,如下列程式碼行所示。
Window myWindow = this.Application.ActiveWindow;
Dim myWindow As Window = Me.Application.ActiveWindow
Window 物件也可以使用 View 類別的 Window 屬性來存取,此屬性代表目前用來配合表單基礎 XML 文件使用的檢視。XmlForm 類別的 CurrentView 屬性是用來存取代表目前檢視的 View 物件。例如,下列程式碼會設定與目前檢視相關聯的 Window 參考。
Window myWindow = this.CurrentView.Window;
Dim myWindow As Window = Me.CurrentView.Window
注意
Window 類別的某些屬性及方法僅適用於編輯視窗類型;如果與設計視窗類型搭配使用,這些屬性和方法就會傳回錯誤。每個視窗類型支援的屬性與方法列於本主題先前的表格中。您可以在程式碼中使用 WindowType 屬性,以便判斷要使用的視窗類型。