Compartir a través de


IInfoPathViewControl (Interfaz)

Representa un control que se encuentra en la vista.

Espacio de nombres: Microsoft.Office.Interop.InfoPath
Ensamblado: Microsoft.Office.Interop.InfoPath (en microsoft.office.interop.infopath.dll)

Sintaxis

<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

Comentarios

La interfaz IInfoPathViewControl, utilizada junto con la interfaz IInfoPathDataImporter, permite que los programadores obtengan información específica acerca de los controles de la vista, como ControlType y DataType, las posiciones Top y Left, el NodeName XML asociado con el control y el InputScopes. La propiedad Value es la única propiedad que se puede establecer.

Para obtener una lista de los controles enumerados existentes en la vista, consulte el método GetControls de la interfaz IInfoPathDataImporterFields. Para obtener una lista de tipos de datos aceptables que se pueden utilizar con controles específicos, consulte la propiedad Value de la interfaz IInfoPathViewControl.

Para obtener más información acerca de la importación de datos mediante programación a un formulario de InfoPath, consulte el Portal de programadores de InfoPath en el Centro de programadores de Microsoft Office.

Ejemplo

En el ejemplo siguiente, el método Import de la interfaz IInfoPathDataImporter se utiliza para realizar una iteración por la colección mshtml.IEnumUnknown de los controles IInfoPathViewControl en la vista del formulario activo.

La rutina Import es la parte principal de una solución utilizada para crear un importador de datos personalizados. El proyecto de Visual Studio requiere una referencia a la biblioteca de tipos de Microsoft Office InfoPath 2.0 y a System.Windows.Forms, con instrucciones Imports para cada uno, además de instrucciones mshtml.Implements que son necesarias para generar las firmas para los métodos que proporcionan las interfaces del importador de datos personalizados, incluidos IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl y IPropertyBag.

Nota:

Para crear un importador de datos personalizados mediante una biblioteca de clases .NET, active la casilla de verificación Registrar para interoperabilidad COM de la ficha Compilar del editor de propiedades de clases.

Nota:

Para depurar un importador de datos personalizados, establezca una Acción de inicio en Visual Studio para Start an external programIniciar un programa externo y buscar INFOPATH.EXE ubicado en <unidad>:\Archivos de programa\Microsoft Office\Office12\. Esta opción está disponible en la ficha Depurar del editor de propiedades de clasesr.

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

Vea también

Referencia

IInfoPathViewControl (Miembros)
Microsoft.Office.Interop.InfoPath (Espacio de nombres)