IInfoPathViewControl - Interface
Représente un contrôle présent dans l'affichage.
Espace de noms : Microsoft.Office.Interop.InfoPath
Assembly : Microsoft.Office.Interop.InfoPath (dans Microsoft.Office.Interop.InfoPath.dll)
Syntaxe
'Déclaration
<GuidAttribute("096CD6DA-0786-11D1-95FA-0080C78EE3BB")> _
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)> _
Public Interface IInfoPathViewControl
'Utilisation
Dim instance As IInfoPathViewControl
[GuidAttribute("096CD6DA-0786-11D1-95FA-0080C78EE3BB")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IInfoPathViewControl
Remarques
L'interface IInfoPathViewControl , utilisé conjointement avec l'interface IInfoPathDataImporter , permet aux développeurs d'obtenir des informations spécifiques sur les contrôles dans le mode d'affichage, le ControlType et les positions DataType, Top et Left , le code XML NodeName associé avec le contrôle et le InputScopes. La propriété Value est la seule propriété qui peut être définie.
Pour obtenir la liste des contrôles qui sont énumérés s'il est présent dans l'affichage, voir la méthode GetControls de l'interface IInfoPathDataImporterFields . Pour obtenir la liste des types de données acceptables qui peuvent être utilisés avec des contrôles spécifiques, voir la propriété Value de l'interface IInfoPathViewControl .
Pour plus d'informations sur l'importation par programme des données dans un formulaire InfoPath, voir le Portail des développeurs InfoPath sur le Centre de développement Microsoft Office.
Exemples
Dans l'exemple suivant, la méthode Import de l'interface IInfoPathDataImporter est utilisée pour effectuer une itération dans la collection mshtml.IEnumUnknown des contrôles IInfoPathViewControl dans l'affichage du formulaire actif.
La routine Import est la partie principale d'une solution servant à générer un importateur de données personnalisé. Le projet Visual Studio requiert une référence à la Bibliothèque de Type Microsoft Office InfoPath 2.0 et System.Windows.Forms, avec Imports les instructions pour chaque, ainsi que les instructions mshtml.Implements sont requises pour générer les signatures des méthodes fournies par les interfaces de l'importateur des données personnalisées, y compris IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControlet IPropertyBag.
Notes
Pour créer un importateur de données personnalisé à l'aide d'une bibliothèque de classes .NET, cochez la case inscrire pour COM interop sur l'onglet de compilation de l'éditeur de propriétés de classe.
Notes
Pour déboguer un importateur de données personnalisé, définissez une Action de démarrage dans Visual Studio pour Start an external programet accédez à INFOPATH. EXE situé dans < lecteur > : \Program Files\Microsoft Office\Office12\. Cette option est disponible sous l'onglet débogage de l'éditeur de propriétés de classe.
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