Практическое руководство. Работа с окнами форм
При работе с формой 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. |