共用方式為


IInfoPathViewControl 介面

代表檢視中有控制項。

**命名空間:**Microsoft.Office.Interop.InfoPath
**組件:**Microsoft.Office.Interop.InfoPath (於 microsoft.office.interop.infopath.dll 中)

語法

'宣告
<TypeLibTypeAttribute(384)> _
<ComConversionLossAttribute> _
<GuidAttribute("096CD6DA-0786-11D1-95FA-0080C78EE3BB")> _
<InterfaceTypeAttribute(1)> _
Public Interface IInfoPathViewControl
'用途
Dim instance As IInfoPathViewControl
[TypeLibTypeAttribute(384)] 
[ComConversionLossAttribute] 
[GuidAttribute("096CD6DA-0786-11D1-95FA-0080C78EE3BB")] 
[InterfaceTypeAttribute(1)] 
public interface IInfoPathViewControl

備註

IInfoPathViewControl 介面搭配 IInfoPathDataImporter 介面使用時,可以讓開發人員取得有關檢視中控制項的特定資訊,例如 ControlTypeDataTypeTopLeft 位置、與控制項關聯的 XML NodeName,以及 InputScopes;而 Value 屬性則是唯一能設定的屬性。

如需檢視中列舉的控制項 (如果出現的話) 清單,請參閱 IInfoPathDataImporterFields 介面的 GetControls 方法。如需可與特定控制項一起使用的可接受資料型別清單,請參閱 IInfoPathViewControl 介面的 Value 屬性。

如需有關以程式設計方式將資料匯入 InfoPath 表單的詳細資訊,請參閱 Microsoft Office 開發人員中心上的 InfoPath 開發人員入口網站 (英文)

範例

在下列範例中,IInfoPathDataImporter 介面的 Import 方法是用於逐一查看使用中表單檢視內 IInfoPathViewControl 控制項的 mshtml.IEnumUnknown 集合。

Import 常式是用來建置自訂資料匯入工具解決方案的主要部分。Visual Studio 專案需要 [Microsoft Office InfoPath 2.0 型別程式庫] 的參考以及 System.Windows.Forms,每個項目都需要 Imports 陳述式和 mshtml.Implements 陳述式,以產生由自訂資料匯入工具介面所提供的方法簽章,包括 IInfoPathDataImporterIInfoPathDataImporterFieldsIInfoPathViewControlIPropertyBag

注意

若要使用 .NET 類別庫建置自訂資料匯入工具,請選取類別屬性編輯器 [編譯] 索引標籤上的 [註冊 COM Interop] 核取方塊。

注意

若要對自訂資料匯入工具進行偵錯,請在 Visual Studio 中設定 [起始動作] 為 [起始外部程式],然後瀏覽至位於 <磁碟機>:\Program Files\Microsoft Office\Office12\ 的 INFOPATH.EXE。這個選項可以在類別屬性編輯器的 [偵錯] 索引標籤上使用。

Imports Microsoft.Office.Interop.InfoPath
Imports System.Windows.Forms
Imports mshtml

<ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)> Public Class Class1
   Implements Microsoft.Office.Interop.InfoPath.IInfoPathDataImporter
   Implements Microsoft.Office.Interop.InfoPath.IInfoPathDataImporterFields
   Implements Microsoft.Office.Interop.InfoPath.IInfoPathViewControl
   Implements Microsoft.Office.Interop.InfoPath.IPropertyBag

   Public Const ClassId As String = _
      "1FEB0DF8-E7F1-4b21-A9EE-B06D5FECC572"
   Public Const InterfaceId As String = _
      "9F9F685C-71A0-46ec-A7F9-A86AF8CBC2A8"
   Public Const EventsId As String = _
      "ED7C0C49-3F89-40a2-A50E-C59E8F682B08" 

Public Sub Import(
   _ByVal pPrintSettings As Microsoft.Office.Interop.InfoPath.IPropertyBag, _
   ByVal punkViewControls As mshtml.IEnumUnknown) _
   Implements Microsoft.Office.Interop.InfoPath.IInfoPathDataImporter.Import

   Dim pControl As IInfoPathViewControl
   Dim pUnk As Object
   Dim pcelt As UInt16 = 1
   Dim pceltFetched As UInt16 = 0

   Try
      'Gets first control in the view
      punkViewControls.RemoteNext(pcelt, pUnk, pceltFetched)

      Do While pUnk.ToString() <> "Nothing"
         pControl = pUnk
         MessageBox.Show(pControl.ControlType)
         'Gets next control in the view
         punkViewControls.RemoteNext(pcelt, pUnk, pceltFetched)
      Loop
   Catch e As Exception
      If e.Message = _
         "Object reference not set to an instance of an object." Then
         ' Signals the end of the enumeration/controls in the view
      Else
         MessageBox.Show("Error: " & e.ToString & " " & e.Message)
      End If
   End Try
End Sub

請參閱

參考

IInfoPathViewControl 成員
Microsoft.Office.Interop.InfoPath 命名空間