Поделиться через


Интерфейс IInfoPathViewControl

Представляет элемент управления, находящийся в представлении.

Пространство имен: Microsoft.Office.Interop.InfoPath
Сборка: Microsoft.Office.Interop.InfoPath (в microsoft.office.interop.infopath.dll)

Синтаксис

'Декларация
<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

Заметки

Интерфейс IInfoPathViewControl, используемый совместно с интерфейсом IInfoPathDataImporter, позволяет разработчикам получать специфическую информацию об элементах управления в представлении, таких как ControlType и DataType, позиции Top и Left, XML-код NodeName, связанный с элементом управления, и InputScopes. Свойство Value является единственным свойством, которое может быть задано.

Список элементов управления, которые перечисляются в случае использования в представлении, можно просмотреть в методе GetControls интерфейса IInfoPathDataImporterFields. Для просмотра списка допустимых типов данных, которые могут быть использованы с конкретными элементами управления, см. свойство Value интерфейса IInfoPathViewControl.

Дополнительные сведения о программном импорте данных в форму InfoPath см. в разделе Портал разработчика InfoPath в Центре разработчика Microsoft Office.

Пример

В следующем примере метод Import интерфейса IInfoPathDataImporter используется для выполнения итераций в коллекции mshtml.IEnumUnknown элементов управления IInfoPathViewControl в представлении активной формы.

Подпрограмма Import является главной частью решения, используемого для построения настраиваемой программы импорта данных. Проект Visual Studio требует ссылок на библиотеку типов и формы System.Windows.Forms, кроме того, для каждой из этих ссылок требуются операторы Imports и mshtml.Implements для создания подписей для методов, предоставляемых интерфейсами настраиваемой программы импорта данных, включая IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl и IPropertyBag.

ЗаметкаЗаметка

Для построения настраиваемой программы импорта данных с использованием библиотеки класса .NET установите флажок на вкладке редактора свойств класса.

ЗаметкаЗаметка

Чтобы отладить настраиваемую программу импорта данных, задайте для параметра в Visual Studio значение Start an external program и перейдите к файлу INFOPATH.EXE, находящемуся в каталоге <drive>:\Program Files\Microsoft Office\Office12\. Этот параметр доступен на вкладке редактора свойств класса.

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

См. также

Ссылка

Члены IInfoPathViewControl
Пространство имен Microsoft.Office.Interop.InfoPath