IInfoPathViewControl-Schnittstelle

Stellt ein Steuerelement dar, das in der Ansicht vorhanden ist.

Namespace: Microsoft.Office.Interop.InfoPath
Assembly: Microsoft.Office.Interop.InfoPath (in microsoft.office.interop.infopath.dll)

Syntax

<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

Hinweise

Die IInfoPathViewControl-Schnittstelle ermöglicht es Entwicklern in Verbindung mit der IInfoPathDataImporter-Schnittstelle, bestimmte Informationen zu den Steuerelementen in der Ansicht abzurufen, z. B. ControlType und DataType, die Positionen Top und Left, der dem Steuerelement zugeordnete XML-Knotenname NodeName und InputScopes. Die Value-Eigenschaft ist die einzige Eigenschaft, die festgelegt werden kann.

Eine Liste der in der Ansicht aufgezählten Steuerelemente (sofern vorhanden) finden Sie in der Beschreibung der GetControls-Methode der IInfoPathDataImporterFields-Schnittstelle. Ein Liste der zulässigen Datentypen, die bei bestimmten Steuerelementen verwendet werden können, finden Sie in der Beschreibung der Value-Eigenschaft der IInfoPathViewControl-Schnittstelle.

Weitere Informationen zum programmgesteuerten Import von Daten in ein InfoPath-Formular finden Sie unter InfoPath Developer Portal im Microsoft Office Developer Center.

Beispiel

Im folgenden Beispiel dient die Import-Methode der IInfoPathDataImporter-Schnittstelle zum Durchlaufen der mshtml.IEnumUnknown-Auflistung von IInfoPathViewControl-Steuerelementen in der Ansicht des aktiven Formulars.

Die Import-Routine bildet den Hauptteil einer Projektmappe, mit der ein benutzerdefinierter Datenimporter erstellt wird. Das Visual Studio-Projekt benötigt einen Verweis auf die Microsoft Office InfoPath 2.0-Typbibliothek und System.Windows.Forms, jeweils mit Imports-Anweisungen sowie mshtml.Implements-Anweisungen zum Generieren der Signaturen für die Methoden, die von den Schnittstellen für den benutzerdefinierten Datenimporter bereitgestellt werden, wie z. B. IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl und IPropertyBag.

Hinweis:

Aktivieren Sie zum Erstellen eines benutzerdefinierten Datenimporters mit einer .NET-Klassenbibliothek das Kontrollkästchen Für COM-Interop registrieren auf der Registerkarte Kompilieren des Klasseneigenschafteneditors.

Hinweis:

Legen Sie zum Debuggen eines benutzerdefinierten Datenimporters eine Startaktion in Visual Studio auf Start an external program fest, und navigieren Sie zu INFOPATH.EXE in "<Laufwerk>:\Programme\Microsoft Office\Office12\". Diese Option steht auf der Registerkarte Debuggen des Klasseneigenschafteneditors zur Verfügung.

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

Siehe auch

Referenz

IInfoPathViewControl-Member
Microsoft.Office.Interop.InfoPath-Namespace