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

Voir aussi

Référence

IInfoPathViewControl - Membres

Microsoft.Office.Interop.InfoPath - Espace de noms