共用方式為


InfoPath 開發人員的新功能

Microsoft Office InfoPath 2007 增加了與開發人員有關的許多新功能和增強功能,這些增強功能中最重要的是新增 Managed 程式碼物件模型 (此物件模型在與 .NET Framework 整合之後有更佳及更巧妙的運作方式)。針對這個新物件模型所撰寫之商務邏輯的運作方式,對於在 Office InfoPath 2007 中開啟的表單範本以及在網頁瀏覽器中開啟的表單範本兩者是一樣的。

此外,一個用來配合以 Managed 程式碼撰寫之商務邏輯的新開發環境,已整合到 Office InfoPath 2007 中,稱為 Microsoft Visual Studio Tools for Applications (VSTA)。

Microsoft Office Forms Server 2007 以及 Microsoft Office SharePoint Server 2007 中可用的相同表單功能 (稱為 InfoPath Forms Services) 會提供一個方式將 InfoPath 表單範本部署到伺服器,好讓使用者不需要 Office InfoPath 2007 也可以使用網頁瀏覽器來開啟及填寫 InfoPath 表單。

使用寫入新 Managed 物件模型的商務邏輯以及 InfoPath 設計模式中的設計檢查功能,可讓您建立單一表單範本,您可以將此表單範本部署到 Microsoft Office Forms Server 2007 或在執行 InfoPath Forms Services 之 Office SharePoint Server 2007 上所適當設定的文件庫,這個表單範本將會同時在 InfoPath 和網頁瀏覽器中執行。這一組 InfoPath 用戶端以及支援此設計與部署體驗的 InfoPath Forms Services 功能稱為一次設計。

新功能和增強功能

以下幾節將簡短說明與 InfoPath 開發人員有關的這些 Office InfoPath 2007 新功能和增強功能:

  • 新的 Managed 程式碼物件模型和開發環境

  • COM 增益集支援

  • 表單範本轉換器

  • 自訂資料匯入工具

  • 檢視設計模式使用者介面中的控制項識別碼

  • 資料連線庫支援

  • XML 事件

  • 範本組件

  • 以控制項形式裝載的 InfoPath 編輯器

新的 Managed 程式碼物件模型和開發環境

Office InfoPath 2007 提供一個新的 Managed 程式碼物件模型,其中包含用來建立表單範本內自訂商務邏輯的一組核心功能。當部署到 Microsoft Office Forms Server 2007 或 Office SharePoint Server 2007 中適當設定的文件庫時,使用這個新物件模型所建立的商務邏輯將會同時在網頁瀏覽器和 Office InfoPath 2007 中執行。您可以選擇性地撰寫使用此物件模型中提供之額外功能層級的商務邏輯,此商務邏輯將只會在開啟以供 Office InfoPath 2007 中編輯的表單範本內執行。

若要撰寫當某個表單同時於網頁瀏覽器和 Office InfoPath 2007 中開啟時將要執行的商務邏輯,請在建立新的表單範本時,於 [設計表單範本] 對話方塊中選取 [僅啟用瀏覽器相容功能] 核取方塊。若要撰寫只有在 Office InfoPath 2007 中開啟時才可以使用其他功能的商務邏輯,請在建立新的表單範本時,清除 [僅啟用瀏覽器相容功能] 核取方塊。您也可以在建立表單範本之後變更這項設定,只需要在 [設計檢查] 工作窗格上按一下 [變更相容性設定] 即可。

Office InfoPath 2007 提供兩個新的選項,讓您開發包含以 Managed 程式碼撰寫之商務邏輯的表單範本。

  • Microsoft Visual Studio Tools for Applications (VSTA) 開發環境,此開發環境已整合到 InfoPath,類似於其他 Office 應用程式使用的 Visual Basic 編輯器環境。VSTA 是以 Visual Studio 功能為根據的輕量型開發環境。

  • Visual Studio Tools for Office 中的 InfoPath 設計模式整合,可讓您設計 InfoPath 表單範本及使用 Managed 程式碼撰寫商務邏輯,而不需要離開 Visual Studio 環境。

如需新的物件模型和開發環境的詳細資訊,請參閱了解 InfoPath 2007 物件模型和開發環境

COM 增益集支援

Office InfoPath 2007 會支援建立及登錄 COM 增益集 (使用與 Word 和 Excel 之類的其他 Office 應用程式非常類似的開發模型)。InfoPath COM 增益集支援用來實作方法的 IDTExtensibility2 介面,這些方法會當做回應 InfoPath 啟動和關閉狀況的事件處理常式。ApplicationEvents 物件已加入到 InfoPath COM 物件模型中,以支援應用程式層級的事件,例如,可讓您在 COM 增益集內針對 InfoPath 表單視窗和文件事件建立事件處理常式的 WindowActivateXDocumentOpen 事件。

若要建立 InfoPath COM 增益集,您需要實作 IDTExtensibility2 介面的五個事件。如需 IDTExtensibility2 介面的詳細資訊,請參閱 MSDN 上的「IDTExtensibility2」。

在建立增益集之後,您必須將它登錄在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\InfoPath\AddIns\ 登錄子機碼底下,並定義 FriendlyNameDescriptionLoadBehavior 等值。

當應用程式啟動時,預設情況下可以載入 InfoPath COM 增益集,也可以透過 [COM 增益集] 對話方塊來叫用此增益集。若要顯示 [COM 增益集] 對話方塊,請按一下 [工具] 功能表上的 [COM 增益集]。

表單範本轉換器

InfoPath 2003 Service Pack 1 及以後版本提供了用來建立新表單範本的架構,其建立方式是匯入另一種電子表單的設計。Office InfoPath 2007 提供了立即可用的轉換器來建立新 InfoPath 表單範本 (根據在 Microsoft Office Word 文件或 Microsoft Excel 活頁簿中所建立的表單設計)。若要開始匯入 Word 或 Excel 中所建立之表單設計的程序,請按一下 [檔案] 功能表上的 [匯入表單] 顯示 [匯入精靈]。

Office InfoPath 2007 已擴充此架構,使其也可支援自訂轉換器的建立和安裝 (這些自訂轉換器會將 InfoPath 表單範本的設計匯出到另一種電子表單)。當已經安裝自訂匯出轉換器之後,使用者可以在設計模式中開啟 InfoPath 表單範本,然後按一下 [檔案] 功能表上的 [匯出表單範本] 命令,將此表單設計匯出到另一種電子表單。

轉換器介面

表單範本轉換器會指定其所支援的檔案類型清單,並處理這些檔案類型,以使用資訊清單 (.xsf)、檢視 (.xsl) 及構成 InfoPath 表單範本檔案 (.xsn) 的其他檔案來輸出 InfoPath 表單範本。

InfoPath 表單範本轉換器是實作 IFormTemplateConverterIFormTemplateConverter2 介面的標準 COM 自動化元件。實作 IFormTemplateConverter 介面會提供與 Microsoft InfoPath 2003 之間的相容性;IFormTemplateConverter2 介面則會為 Office InfoPath 2007 的使用者提供其他功能。為了要能夠在 InfoPath 設計模式中公開,轉換器也必須提供有關其本身在登錄中的一些基本資訊,包括:

  • 顯示名稱

  • 詳細資訊描述

  • 轉換器支援的副檔名清單

位於 C:\Program Files\Microsoft Office\Office12 資料夾中的 IPDESIGN.DLL 動態連結程式庫提供了 IFormTemplateConverterIFormTemplateConverter2IConversionManagerIConversionManager2 介面來建立自訂表單設計轉換器。

自動化轉換器

可以將表單範本轉換器自動化,以加速多個表單範本的大量匯入或匯出工作。若要自動化轉換器,您會使用此轉換器所實作的方法。例如,下列 JScript 程式碼片段會示範如何自動化 Microsoft Office Word 表單匯入工具來匯入 "sample.doc":

var oConverter = new ActiveXObject("InfoPath.DesignerWordImport.2");
var strSourcePath = "c:\\temp\\sample.doc";
var strDestPath = "c:\\temp\\sampleOutput\\"

oConverter.Initialize();
try
{
   oConverter.SetLcid(1033);
   var strMessage = oConverter.Import(strSourcePath, strDestPath, true);
}
catch(e)
{
   WScript.Echo("Error: " + e.message);
}

WScript.Echo("Result was: " + strMessage);

oConverter.UnInitialize();

自訂資料匯入工具

Office InfoPath 2007 提供一個用來建立自訂匯入工具的架構,以便從其他種類的電子表單和文件匯入資料,以及從使用「光學字元辨識」(OCR) 軟體來以電子方式掃描之書面表單和文件中匯入資料。若要顯示 [匯入表單資料] 對話方塊,請按一下 [檔案] 功能表上的 [填寫表單],並選取要填寫的表單,然後按一下 [檔案] 功能表上的 [匯入表單資料]。

位於 C:\Program Files\Microsoft Office\Office12 資料夾中的 IPEDITOR.DLL 動態連結程式庫提供了 IInfoPathDataImporterIInfoPathDataImporterFieldsIInfoPathViewControlIPropertyBag 介面,您必須要實作這些介面,才能建立自訂資料匯入工具。

檢視設計模式使用者介面中的控制項識別碼

您現在可以針對設計模式中 InfoPath 表單上的控制項決定 ViewContext 識別碼,透過的方式是顯示此控制項的 [內容] 對話方塊,然後按一下 [進階] 索引標籤,目前控制項的 ViewContext 值便會顯示在 [進階] 索引標籤上的 [程式碼] 區段中。

資料連線庫支援

資料連線庫是儲存在包含資料連線檔案之 Office SharePoint Server 2007 或 Office Forms Server 2007 伺服器上的清單。儲存在資料連線庫中的資料連線檔案可以是 Excel 所用的 Office 資料連線檔案 (OCD) 或是 Office InfoPath 2007 所用的通用資料連線 V2 檔案 (UDC),而每一個 UDC 檔案都包含可由 InfoPath 表單範本使用的資料連線設定。

資料連線庫中的 UDC 檔案可用來定義使用者表單範本 (由使用者所部署且不包含需要管理員核准之程式碼和其他功能的表單範本) 的資料連線。加入到資料連線庫的所有 UDC 檔案需要先由網站集合管理員核准之後,才可以使用。另外有一個個別的 UDC 檔案中央儲存區,此儲存區是由伺服器陣列管理員所控制,而且只能由管理員核准的表單範本 (包含需要管理員核准之程式碼和其他功能的表單範本) 所使用。

使用者表單範本要求以下兩個條件必須成立,才可以對資料來源進行跨網域連線:

  1. 伺服器陣列管理員必須先針對整個伺服器陣列中的使用者表單範本啟用跨網域資料連線。

  2. 必須在資料連線庫中定義任何跨網域資料連線。

根據預設,此資料連線庫中的項目需要先獲得網站管理員的核准之後,InfoPath 才會使用這些項目。

當發佈到 Office SharePoint Server 2007 或 Office Forms Server 2007 伺服器時,表單設計者可選擇資料連線庫內 (位於相同網站集合中的伺服器上) UDC 檔案中所指定的一個或多個連線。如果是伺服器的表單,這些檔案必須存在於此表單之發行目標的伺服器上。UDC 檔案可包含伺服器特有的資訊 (如替代的驗證資訊) 或甚至是伺服器特有連線的連結。

當您設計表單範本以及針對資料連線庫中的資料連線建立資料連線時,InfoPath 會將此 UDC 檔案的連結放到表單範本的資訊清單檔案 (.xsf) 中。將會在執行時間從此資料連線庫擷取連線設定,如此可讓伺服器管理員在部署表單之後,變更連線設定。

從現有表單範本中的資料連線庫指定連線

  1. 在設計模式中開啟表單範本。

  2. 按一下 [工具] 功能表上的 [資料連線]。

  3. 按一下 [新增] 啟動 [資料連線精靈],然後按一下 [在 Microsoft Office SharePoint Server 搜尋連線],再按 [下一步]。

在建立新的空白表單時從資料連線庫指定連線

  1. 按一下 [檔案] 功能表上的 [設計表單範本]。

  2. 在 [設計表單範本] 對話方塊中,按一下 [連線庫] 圖示。

從清單方塊、下拉式清單方塊或下拉式方塊控制項的資料連線庫指定連線

  1. 在設計模式中開啟表單範本。

  2. 顯示此控制項的 [內容] 對話方塊。

  3. 按一下 [資料] 索引標籤上的 [從外部資料來源查詢值],然後按一下 [新增]。

  4. 按一下 [在 Microsoft Office SharePoint Server 搜尋連線],然後按 [下一步]。

在設定表單範本送出選項時,從資料連線庫指定資料連線

  1. 在設計模式中開啟表單範本。

  2. 按一下 [工具] 功能表上的 [送出選項]。

  3. 按一下 [允許使用者送出這個表單] 核取方塊。

  4. 按一下下拉式清單中的 [從資料連線庫連線]。

  5. 按一下 [新增] 啟動 [資料連線精靈]。

在使用 HTTP Post 設定要送出到網頁伺服器的表單範本時,從資料連線庫指定資料連線

  1. 在設計模式中開啟表單範本。

  2. 按一下 [工具] 功能表上的 [送出選項]。

  3. 按一下 [允許使用者送出這個表單] 核取方塊。

  4. 按一下 [傳送表單資料至單一目的地],然後從下拉式清單中選取 [網頁伺服器 (HTTP)]。

  5. 按一下 [修改]。

  6. 在 [送出至網頁伺服器] 對話方塊中,按一下 [Office Server 連線],然後按一下 [伺服器連線]。

在 Office SharePoint Server 上設定資料連線庫驗證設定

伺服器管理員可控制針對 Office SharePoint Server 2007 或 Office Forms Server 2007 上資料連線庫內指定之連線執行某些驗證功能的方式。下表會列出在 [應用程式管理] 頁面上的 [SharePoint 3.0 管理中心] 中所做的資料連線庫設定 (設定的方式是按一下 [設定 InfoPath Form Services])。

設定 描述

對資料來源進行 HTTP 驗證需要 SSL

連接到後端資料來源 (如 Web 服務) 的表單可能需要使用「基本」或「摘要式」驗證來進行連接,如此便需要透過網路傳送的密碼。核取此方塊,即表示這兩種驗證類型需要 SSL 加密的連線。預設設定為 True (已選取)。

允許內嵌 SQL 驗證

連接到 Microsoft SQL Server 資料庫的表單可能會在連線字串中內嵌 SQL Server 使用者名稱和密碼,您可使用純文字格式在與此表單範本相關之 UDC 檔案中或是表單範本 manifest.xsf 檔案中讀取此連線字串。取消核取此方塊,可封鎖表單使用內嵌 SQL 認證。預設設定為 False (未選取)。

允許使用者表單範本使用資料連線檔案包含的驗證資訊

通用資料連線 (UDC) 檔案可包含替代的驗證資訊,如明確的使用者名稱和密碼,或是單一登入應用程式識別碼。核取此方塊可允許使用者表單範本使用 UDC 檔案中的這項替代驗證資訊。預設設定為 False (未選取)。

允許使用資料連線檔之連線設定的使用者表單範本,存取跨網域資料

使用者表單範本可包含資料連線檔中的資料連線,以便能夠從其他網域存取資料。核取此方塊可允許使用者表單範本存取跨網域的資料。預設設定為 False (未選取)。

XML 事件

當使用者所處理的表單範本是使用已部署到 Office Forms Server 2007 或 Office SharePoint Server 2007 的 Office InfoPath 2007 所建立時,InfoPath 會使用兩個方法的其中一種來儲存及管理記憶體中的表單資料 (根據開啟表單範本的方式來決定所用的方法):

  • 在 InfoPath 中開啟此表單範本時,會使用 Microsoft XML Core Services 5.0 (MSXML5) DOMDocument 物件。

  • 在網頁瀏覽器中開啟此表單範本時,會使用 Microsoft .NET Framework 2.0 XmlDocument 類別。

XPathNavigator 類別的方法搭配新 Microsoft.Office.InfoPath 物件模型的類別和成員使用時,表單範本開發人員便能夠撰寫 Managed 程式碼函數和副程式來存取及更新這兩個儲存區中的 XML 資料。XML 事件可讓表單開發人員以程式設計方式取消、新增驗證及針對 XML 節點上的作業定義副作用 (如 InsertDeleteValueChange 等作業)。

Office InfoPath 2007 在使用新的 Managed 物件模型時,提供三個核心 XML 事件:ChangingValidatingChanged 事件。

注意

只有在使用 Office InfoPath 2007 開啟之表單範本的商務邏輯中才支援 Changing 事件;在網頁瀏覽器中開啟之供瀏覽器使用的表單範本內不支援 Changing 事件。

為控制項的 Changing、Validating 或 Changed 事件建立事件處理常式

  1. 在設計模式中開啟表單範本。

  2. 以滑鼠右鍵按一下該控制項,然後按一下 [程式設計],再按一下您想要使用的事件。

如此會開啟 Microsoft Visual Studio Tools for Applications (VSTA) 環境 (如果您已安裝 Visual Studio 2005 及 Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office system,則會是 Visual Studio 2005,或在 Visual Studio 2008 附 Visual Studio Tools for Office 中),並以 C# 建立類似下列 Changed 事件範例的事件處理常式基本架構:

public void field1_Changed(object sender, XmlEventArgs e)
{
   // Write code here to change data outside the Main Data Object
   // such as other Data Objects and member variables.
   if (e.UndoRedo)
   {
      // InfoPath will handle all undo and redo operations that change
      // the Main Data Object, so there is nothing left for custom code
      // to do.
      return;
   }
    // Write code here to change the Main Data Object.
}

如需建立事件處理常式的詳細資訊,請參閱操作方法:新增事件處理常式。如需透過新的 Managed 程式碼物件模型使用 XML 的詳細資訊,請參閱操作方法:使用 XPathNavigator 和 XPathNodeIterator 類別

使用委派繫結事件

當使用新的 Managed 程式碼物件模型時,Office InfoPath 2007 會使用委派將事件繫結至事件處理常式。請注意,雖然 InfoPath 使用委派來繫結事件,但是這項功能為一般 Managed 程式碼用途的子集合。具體而言,InfoPath 會使用委派來繫結靜態事件。繫結只能發生在 InternalStartup 方法中,當載入表單時會執行此方法。如果在程式碼中的其他地方宣告用來繫結事件的委派,則會擲回執行階段例外狀況。

下列會顯示當新增 field1 之 Changed 事件和 field2 之 Validating 事件的事件處理常式時,InfoPath 所產生的 C# 程式碼。請注意,會使用 XmlChangedEventHandlerXmlValidatingEventHandler 委派將該事件處理常式的事件繫結程式碼加入到 InternalStartup 方法。

using System;
using Microsoft.Office.InfoPath;

namespace Template1
{
   public partial class FormCode
   {
      public void InternalStartup()
      {
         EventManager.XmlEvents["/my:myFields/my:field1"].Changed += new XmlChangedEventHandler(field1_Changed);
         EventManager.XmlEvents["/my:myFields/my:field2"].Validating += new XmlValidatingEventHandler(field2_Validating);
      }

      public void field1_Changed(object sender, XmlEventArgs e)
      {
         // Code for Changed event goes here.
      }

      public void field2_Validating(object sender, XmlValidatingEventArgs e)
      {
         // Code for Validating event goes here.
      }
   }
}

重要

InternalStartup 方法以及其中的事件繫結程式碼,都是您在使用各種不同的使用者介面命令來新增事件處理常式時由 InfoPath 所產生,您不應該自行建立 InternalStartup 方法或在其中新增任何其他程式碼。如需如何新增事件處理常式的詳細資訊,請參閱操作方法:新增事件處理常式

範本組件

表單設計者現在可以建立表單組件庫 (稱為範本組件),其中可包含控制項、版面配置、結構描述、規則和計算。您可以將範本組件部署到共用存放庫或是位於本機的一組電腦,好讓個別表單設計者或一組表單設計者可以使用這些範本組件來進行新表單範本的模組式設計。例如,如果您有一組包含相同標頭區段的表單範本,您可以使用範本組件來設計一次標頭區段,並將此標頭區段插入到每一個表單範本中。

此外,您也可以在之後更新範本組件的設計,並將它存回共用存放庫。當表單設計者重新開啟包含舊版範本組件的表單範本時,InfoPath 將會通知這名使用者有更新版本的範本組件可以使用,並允許該使用者更新此組件。

由於某些 InfoPath 設計功能無法在範本組件中使用,所以這些功能具有特殊的設計模式。當您將範本組件儲存到共用存放庫時,便可以在表單範本設計模式下於 [控制項] 工作窗格的 [自訂控制項] 區段中使用它。如果您建立範本組件,並將它儲存在本機位置,您必須使用 [新增或移除自訂控制項] 命令,將此範本組件加入到 [控制項] 工作窗格。

建立範本組件

  1. 按一下 [檔案] 功能表上的 [設計表單範本]。

  2. 在 [設計表單範本] 對話方塊中,按一下 [範本組件]。

  3. 在 [根據] 中,按一下您想要當做此範本組件之根據的資料來源圖示,然後按一下 [確定]。

  4. 就像其他任何表單範本一樣來設計範本組件,並插入版面配置、控制項、規則和資料驗證。您也可以新增資料連線,以允許自動填入 [下拉式清單方塊]、[下拉式方塊] 或 [清單方塊] 等控制項。

  5. 若要儲存範本組件,請按一下 [檔案] 功能表上的 [儲存]。此範本組件的顯示名稱將會與儲存它的檔案名稱相同。

  6. 如果您是使用 InfoPath 和 Microsoft Visual Studio Tools for Applications (VSTA) 開發環境,請在 [控制項] 工作窗格中按一下 [新增或移除自訂控制項],然後按一下 [新增],並找出您所儲存的 InfoPath 範本組件 (.xtp) 檔案。

    如果搭配 InfoPath 設計模式整合使用 Visual Studio,請以滑鼠右鍵按一下 [工具箱],然後按一下 [選擇項目],再按一下 [新增],並找出所儲存的 InfoPath 範本組件 (.xtp) 檔案。

使用範本組件

  1. 建立新的表單範本,並開啟 [控制項] 工作窗格。

  2. 向下捲動至 [自訂] 控制項,然後將範本組件拖曳到表單上。

    注意

    如果搭配 InfoPath 設計模式整合使用 Visual Studio,則範本組件會列在 [工具箱] 的 [InfoPath] 區段底部。

您現在可以使用表單範本和其中的範本組件,就像是在沒有範本組件的情況下設計表單一樣。所有的控制項和相關邏輯都可加以編輯,您也可以在範本組件的原始檔案中編輯該範本組件,而且您會注意到之前將它插入到其他表單範本中的位置,此範本組件將會通知您有新的版本可以使用。

注意

如果您將更新的範本組件儲存到共用存放庫,您必須先關閉並重新開啟您已將範本組件插入其中的表單範本,然後才會注意到有新的版本可以使用。如果您將更新的範本組件儲存到本機資料夾,則必須將此範本組件重新安裝到所有共用此範本組件的電腦。

以控制項形式裝載的 InfoPath 編輯器

InfoPath 表單編輯功能已經歸類到一組會透過 IPEDITOR.DLL 動態連結程式庫之 InfoPathEditorObject 物件公開的屬性和方法,這些屬性和方法可讓您將另一個應用程式中的 InfoPath 編輯功能子集合當做 ActiveX 控制項或 Managed Windows Form 控制項來裝載。

InfoPath 安裝程式也會安裝位於 C:\Program Files\Microsoft Office\Office12 資料夾中的 Microsoft.Office.InfoPath.FormControl.dll 組件,該組件會包裝 InfoPathEditorObject 物件的 COM 物件模型,以便在 Windows Form 和其他 .NET 應用程式中使用此控制項。

下表摘要列出 InfoPathEditor 物件所提供的屬性和方法:

成員 描述

CloseDocument 方法

會關閉開啟的 XML 文件。

DataConnectionBaseURL 屬性

會取得或設定用於資料連線的 URL。

FlushDocument 方法

會儲存或清除載入的文件。

Host 屬性

會取得或設定用來存取主應用程式之物件模型的物件。預設會設為 null

HostName 屬性

會取得或設定主應用程式的名稱。

Load 方法

會根據檔案名稱的 URL 載入檔案系統中的指定 XML 文件。所提供的 XML 檔案必須包含處理指示 (hrefname 屬性),這些處理指示會參照用來載入及編輯該 XML 檔案的表單範本。

LoadFromStream 方法

會從資料流 (IStream) 載入指定的 XML 文件。

NewFromSolution 方法

會根據指定之表單範本的 URL 建立新 InfoPath 表單文件。

NewFromSolutionWithData 方法

會使用當做 IStream 的指定 XML 資料及表單範本檔案的 URL 來建立新 InfoPath 表單文件。當使用這個方法時,此 XML 檔案不需包含處理指示 (這些處理指示會參照用來載入及編輯此檔案的表單範本)。

SetInitEventHandler 方法

會設定主應用程式中當做 Initialize 事件之回呼函數的函數,該事件會在 InfoPath OnLoad 事件之前呼叫。

SetSubmitToHostEventHandler 方法

設定在將資料送回主應用程式時,在主應用程式中當做回呼函數使用的函數。若要設定用來送出至主應用程式的資料連線,請在 InfoPath 設計模式中開啟表單範本,然後按一下 [工具] 功能表上的 [送出選項],再選取 [允許使用者送出這個表單] 核取方塊,並選取下拉式清單中的 [主控環境],最後按一下 [新增]。

XDocument 屬性

會取得使用 InfoPath 物件模型之成員的 XDocument 物件。

注意

如果您正在使用 Microsoft.Office.InfoPath.FormControl 組件,這個屬性會命名為 XmlForm,並取得 XmlForm 物件來使用 InfoPath 物件模型的成員。

InfoPath 工具列和功能表列不是由立即可用的 InfoPathEditor 物件所提供;但是,InfoPath 編輯器功能表和工作窗格中的每一個命令都會透過 IOLECommandTarget 介面來公開。然後,主應用程式可以透過該介面來執行這些命令,好讓開發人員視需要複製這項完整的功能、部分功能或是完全不複製。

如需透過 IOLECommandTarget 介面使用 InfoPath 命令的詳細資訊,請參閱 MSDN 上位於 InfoPath 開發人員入口網站 中的<在自訂 WinForm 應用程式中裝載 InfoPath 表單編輯環境>文章 (英文),此文章包含範例 Visual Studio 專案的連結。

將 InfoPath 編輯器控制項加入到 Windows Form 應用程式

  1. 啟動 Microsoft Visual Studio。

  2. 建立新的 [Windows 應用程式] 專案。

  3. 將 InfoPath FormControl 當做 .NET Framework 元件 (位於 C:\Program Files\Microsoft Office\Office12 中的 Microsoft.Office.InfoPath.FormControl.dll 組件) 加入到 [工具箱]。

  4. 將 [FormControl] 控制項拖曳到 Windows Form 上。

  5. 將 [按鈕] 控制項加入到 Windows Form 上。

  6. 對 [按鈕] 控制項撰寫會將 InfoPath 表單 XML 檔案載入到 FormControl 中的 Click 事件處理常式 (例如,formControl1.New(@"C:\hello.xml");)。

  7. 建置及執行此應用程式。

這會假設在 C:\hello.xml 中有一個名為 "hello.xml" 的 InfoPath XML 檔案存在。為了要能夠使用此範例中所用的 New 方法,此 XML 檔案必須有使用 hrefname 屬性的處理指示參照,這些屬性會在標題中指定 InfoPath 表單範本檔案 (.xsn)。如果這樣的方式不可行,可以使用 NewFromFormTemplate(string, System.IO.Stream,Microsoft.Office.InfoPath.XmlFormOpenMode) 方法來從 System.IO.Stream 載入 XML,或者可以在您具有 .xsn 檔案及適當結構的 XML 檔案時使用 NewFromFormTemplate(string) 方法,但是此 XML 檔案不會有指定該 .xsn 檔案的處理指示參照。FormControl 物件的 NewFromFormTemplate 方法會對應到 InfoPathEditorObject 物件的 NewFromSolutionLoadFromStream 方法。

請參閱

其他資源

開發 InfoPath Managed 程式碼表單範本
使用 InfoPath 2003 物件模型開發 Managed 程式碼表單範本