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 介面使用時,可以讓開發人員取得有關檢視中控制項的特定資訊,例如 ControlType 和 DataType、Top 和 Left 位置、與控制項關聯的 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 陳述式,以產生由自訂資料匯入工具介面所提供的方法簽章,包括 IInfoPathDataImporter、IInfoPathDataImporterFields、IInfoPathViewControl 和 IPropertyBag。
注意
若要使用 .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 命名空間