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


Практическое руководство. Работа с окнами форм

При работе с формой InfoPath программным образом можно написать код для доступа к окнам формы, а затем настроить некоторые содержащиеся в них элементы. Объектная модель InfoPath, предоставляемая пространством имен Microsoft.Office.InfoPath, поддерживает доступ к окнам формы путем использования класса Window в сочетании с классом WindowCollection.

В InfoPath существует два типа окон:

  • окно редактирования, которое используется при заполнении формы пользователем;

  • окно разработки, которое используется при разработке пользователем шаблона формы.

При написании кода в шаблоне формы наиболее удобные функциональные возможности обеспечивает окно редактирования, поскольку оно позволяет использовать объект Window, представляющий текущее окно, для доступа к целому ряду свойств и методов, которые можно использовать для настройки процесса редактирования формы.

Обзор класса "WindowsCollection"

Класс WindowsCollection предоставляет указанные ниже свойства, которыми разработчики форм могут пользоваться для управления объектами Window, содержащимися в классе.

Имя Описание

Свойство Count

Возвращает количество объектов Window, содержащихся в коллекции.

Свойство Item

Возвращает ссылку на указанный объект Window.

Обзор класса "Window"

Класс Window предоставляет указанные ниже методы и свойства, которыми разработчики форм могут пользоваться для взаимодействия с окном InfoPath. Поддержка этих методов и свойств зависит от типа окна (WindowType), с которым осуществляется работа. Некоторые методы и свойства работают только с окном редактора (WindowType.Editor). Остальные методы и свойства работают как с окном редактора, так и с окном конструктора (WindowType.Designer). Кроме того, как и для всех членов объектной модели InfoPath, при вызове из шаблона формы поддержка методов и свойств может изменяться в зависимости от уровня безопасности и метода развертывания формы.

Имя Описание Поддержка типов окон

Метод Activate

Активирует окно (переключает фокус).

Типы Designer и Editor

Свойство Active

Возвращает логическое (Boolean) значение, указывающее, является ли окно активным в данный момент.

Типы Designer и Editor

Свойство Caption

Возвращает или задает текст заголовка окна, представленного объектом Window.

Только тип Editor

Метод Close

Закрывает окно с запросом на сохранение изменений для любой несохраненной формы или формы, изменения которой не были сохранены.

Только тип Editor

Метод Close

Закрывает окно и позволяет при необходимости принудительно закрыть без сохранения несохраненную форму или форму с несохраненными изменениями.

Только тип Editor

Свойство CommandBars

Возвращает ссылку на коллекцию Microsoft Office CommandBars, связанную с окном.

Типы Designer и Editor

Свойство Height

Возвращает или задает высоту окна, измеряемую в точках.

Типы Designer и Editor

Свойство Left

Возвращает или задает горизонтальную позицию окна, измеряемую в точках.

Типы Designer и Editor

Свойство MailEnvelope

Возвращает ссылку на класс MailEnvelope.

Только тип Editor

Свойство TaskPanes

Возвращает ссылку на коллекцию TaskPaneCollection.

Типы Designer и Editor

Свойство Top

Возвращает или задает вертикальную позицию окна, измеряемую в точках.

Типы Designer и Editor

Свойство Width

Возвращает или задает ширину окна, измеряемую в точках.

Типы Designer и Editor

Свойство WindowState

Возвращает или задает состояние окна как значение WindowState.

Типы Designer и Editor

Свойство WindowType

Возвращает тип окна как значение перечисления WindowType.

Типы Designer и Editor

Свойство XmlForm

Возвращает ссылку на объект XmlForm, связанный с окном.

Только тип Editor

Использование классов "WindowsCollection" и "Window"

Доступ к классу WindowsCollection предоставляется через свойство Windows класса Application. Если для доступа к окнам формы используется класс WindowsCollection, то для возвращения ссылки на экземпляр объекта Window применяется индексатор (для Visual C#) или передается длинное целое значение свойству Item (в Visual Basic). Например, указанный далее код задает для текущего сеанса InfoPath ссылку на первый объект Window, содержащийся в классе WindowsCollection.

Window myWindow = this.Application.Windows[0];
Dim myWindow As Window = Me.Application.Windows(0)

Доступ к открытому в данный момент окну можно получить напрямую с помощью свойства ActiveWindow класса Application без прохода через класс WindowsCollection, как показано в следующей строке кода.

Window myWindow = this.Application.ActiveWindow;
Dim myWindow As Window = Me.Application.ActiveWindow

Также доступ к объекту Window можно получить с помощью свойства Window класса View, который представляет текущее представление, используемое для работы с базовым XML-документом формы. Свойство CurrentView класса XmlForm используется для доступа к объекту View, представляющему текущее представление. Например, следующий код задает ссылку на объект Window, связанный с текущим представлением.

Window myWindow = this.CurrentView.Window;
Dim myWindow As Window = Me.CurrentView.Window
ЗаметкаЗаметка

Некоторые свойства и методы класса Window предназначены только для типа окна редактирования. При применении этих свойств и методов для типа окна разработки будет возвращена ошибка. Свойства и методы, которые поддерживаются для каждого типа окна, перечислены в таблице, приведенной ранее в этом разделе. Чтобы определить, с каким типом окна осуществляется работа, можно использовать в коде свойство WindowType.