Interfaccia IInfoPathViewControl

Rappresenta un controllo presente nella visualizzazione.

Spazio dei nomi: Microsoft.Office.Interop.InfoPath
Assembly: Microsoft.Office.Interop.InfoPath (in microsoft.office.interop.infopath.dll)

Sintassi

<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

Osservazioni

L'interfaccia IInfoPathViewControl, utilizzata insieme all'interfaccia IInfoPathDataImporter, consente agli sviluppatori di ottenere informazioni specifiche sui controlli presenti nella visualizzazione, ad esempio ControlType e DataType, le posizioni Top e Left, il codice XML NodeName associato al controllo e InputScopes. La proprietà Value è l'unica che è possibile impostare.

Per l'elenco dei controlli enumerati nella visualizzazione, se presenti, vedere il metodo GetControls dell'interfaccia IInfoPathDataImporterFields. Per l'elenco dei tipi di dati che possono essere utilizzati con controlli specifici, vedere la proprietà Value dell'interfaccia IInfoPathViewControl.

Per ulteriori informazioni sull'importazione di dati a livello di programmazione in un modulo di InfoPath, vedere il Portale per sviluppatori di InfoPath in Microsoft Office Developer Center.

Esempio

Nell'esempio seguente, il metodo Import dell'interfaccia IInfoPathDataImporter viene utilizzato per eseguire un'iterazione nell'insieme mshtml.IEnumUnknown di controlli IInfoPathViewControl nella visualizzazione del modulo attivo.

La routine Import rappresenta l'elemento principale di una soluzione utilizzata per generare un'utilità di importazione personalizzata. Il progetto di Visual Studio richiede un riferimento alla Libreria dei tipi di Microsoft Office InfoPath 2.0 e a System.Windows.Forms, con istruzioni Imports per ciascuno di tali elementi e istruzioni mshtml.Implements per generare le firme dei metodi forniti dalle interfacce delle utilità di importazione personalizzate, con l'inclusione di IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl e IPropertyBag.

Nota:

Per creare un'utilità di importazione dati utilizzando una libreria delle classi .NET, selezionare la casella di controllo Registra per interoperabilità COM nella scheda Compilazione dell'editor delle proprietà delle classi.

Nota:

Per eseguire il debug di un'utilità di importazione dati personalizzata, impostare un'Azione di avvio in Visual Studio su Start an external program e selezionare INFOPATH.EXE in <drive>:\Program Files\Microsoft Office\Office12\. Questa opzione è disponibile nella scheda Debug dell'editor delle proprietà delle classi.

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

Vedere anche

Riferimenti

Membri IInfoPathViewControl
Spazio dei nomi Microsoft.Office.Interop.InfoPath