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)