次の方法で共有


IInfoPathViewControl インターフェイス

定義

ビューに存在するコントロールを表します。

public interface class IInfoPathViewControl
[System.Runtime.InteropServices.Guid("096CD6DA-0786-11D1-95FA-0080C78EE3BB")]
[System.Runtime.InteropServices.InterfaceType(1)]
public interface IInfoPathViewControl
type IInfoPathViewControl = interface
Public Interface IInfoPathViewControl
属性

次の例では、IInfoPathDataImporter インターフェイスの Import メソッドを使用して、mshtml を反復処理します。アクティブなフォームのビュー内の IInfoPathViewControl コントロールの IEnumUnknown コレクション。

Import ルーチンは、カスタム データ インポーターの構築に使用されるソリューションの主要な部分です。 Visual Studio プロジェクトでは、Microsoft Office InfoPath 2.0 タイプ ライブラリと System.Windows.Forms への参照と、それぞれおよび mshtml の Imports ステートメントが必要です。カスタム データ インポーター インターフェイスによって提供されるメソッド (、 IInfoPathDataImporterFieldsIInfoPathViewControlIPropertyBagなどIInfoPathDataImporter) のシグネチャを生成するには、Implements ステートメントが必要です。

: .NET クラス ライブラリを使用してカスタム データ インポーターをビルドするには、クラス プロパティ エディターの [コンパイル] タブの [COM 相互運用機能の登録] チェック ボックスをオンにします。

: カスタム データ インポーターをデバッグするには、Visual Studio で [スタート アクション] を [外部プログラムの開始] に設定し、ドライブ>:\Program Files\Microsoft Office\Office12\ にある<INFOPATH.EXEを参照します。 このオプションは、クラス プロパティ エディターの [デバッグ] タブで使用できます。

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

&lt;ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)&gt; 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() &lt;&gt; "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: " &amp; e.ToString &amp; " " &amp; e.Message)
      End If
   End Try
End Sub

注釈

インターフェイスとIInfoPathDataImporter組み合わせて使用される IInfoPathViewControl インターフェイスを使用すると、開発者は、ビューControlType内のコントロールに関する特定の情報 (、 や DataTypeTopLeft 、 位置、コントロールに関連付けられている XMLNodeName、など) をInputScopes(IntPtr, UInt32, IEnumString, String)取得できます。 Valueプロパティは、設定できる唯一のプロパティです。

ビューに存在する場合に列挙されるコントロールの一覧については、インターフェイスのメソッドをGetControls(IEnumUnknown)IInfoPathDataImporterFields参照してください。 特定のコントロールで使用できる許容されるデータ型の一覧については、IInfoPathViewControl インターフェイスの プロパティを参照してくださいValue

プログラムによって InfoPath フォームにデータをインポートする方法の詳細については、 InfoPath 開発者ポータルMicrosoft Office デベロッパー センターを参照してください。

プロパティ

ControlType

列挙体の現在のコントロールのコントロールの種類を取得します。

DataType

ビュー内のコントロールのデータ型を取得します。

Height

列挙体の現在のコントロールの高さを取得します。

Left

列挙体の現在のコントロールのビューの左側からオフセットを取得します。

NodeName

列挙体の現在のコントロールに関連付けられているノードの名前を取得します。

Top

列挙体の現在のコントロールのビューの上部からオフセットを取得します。

Value

列挙体の現在のコントロールの値を取得または設定します。

Width

列挙体の現在のコントロールの幅を取得します。

メソッド

InputScopes(IntPtr, UInt32, IEnumString, String)

列挙体の現在のコントロールの入力スコープを取得します。

適用対象