Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lector4(Stud).doc
Скачиваний:
3
Добавлен:
02.05.2019
Размер:
125.95 Кб
Скачать

2 Использование нестандартных диалоговых окон

Чтобы обмениваться с пользователем информацией через нестандартное диалоговое окно, программа должна выводить его на экран, реагировать на действия пользователя в этом окне и при его закрытии получать введенную информацию.

Для тестирования нестандартного диалогового окна необходимо выбрать в меню Run (Запуск) в редакторе Visual Basic команду Run Sub/UserForm (Запуск подпрограммы/UserForm). Чтобы вывести диалоговое окно на экран при выполнении программы, следует использовать метод Show.

2.1 Получение и установка значений свойств в период выполнения

Чтобы установить начальное значение, или значение по умолчанию (default value), которое будет у элемента управления при каждом открытии содержащего его диалогового окна, необходимо добавить нужный код в процедуру обработки события Initialize формы UserForm, включающей этот элемент. При отображении диалогового окна возникнет событие Initialize, и будет вызвана процедура его обработки – а значит, и код, указывающий значение для элемента управления.

Элементы наборов в иерархии объектов Microsoft Excel, Word и PowerPoint нумеруются с 1, а элементы массивов и наборов, связанных с формами, - с 0. Именно поэтому для выбора четвертого элемента из списка в предыдущем примере свойству ListIndex присвоено значение 3.

В предыдущем примере вместо кодового имени формы UserForm можно подставить ключевое слово Me, и тем самым заменить оператор With frmPhoneOrders на With Me. Ключевое слово Me, используемое в коде для UserForm или элементов управления на форме, представляет саму UserForm. Это позволяет присваивать элементам управления длинные имена и в то же время поддерживать компактность строк кода.

Если при каждом выводе диалогового окна нужны разные начальные значения элемента управления, то это можно сделать программно перед отображением окна.

Можно изменять свойства элементов управления и UserForm и применять их методы даже в тот момент, когда диалоговое окно отрыто.

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

Свойство Enabled позволяет включать элемент управления при выполнении указанных условий. Эту возможность часто используют в процедурах обработки событий для полей, чтобы включать кнопку Ok, только когда будет введено значение, соответствующее стандартному шаблону, или когда набор (Frame) переключателей (OptionButton) должен быть доступен лишь при активизации определенного флажка (CheckBox).

Элемент управления TabStrip (Набор вкладок) позволяет отображать разные наборы данных с помощью одного и того же набора элементов управления диалогового окна. Например, чтобы в области диалогового окна показывать адреса группы людей, можно создать элемент управления TabStrip и добавить элементы, которые будут содержать имя и адрес каждого лица в группе. Затем добавить «ярлычок» по каждому члену группы в элемент управления TabStrip и написать код, который при щелчке ярлычка отображает сопоставленные с ним данные. В следующем примере значение элемента TextBox1 изменяется в зависимости от того, какой ярлычок элемента TabStrip1 активен. Индекс выбранного ярлычка передается в процедуру обработки события.

Для проверки данных перед закрытием диалогового окна необходимо включить соответствующий код в процедуру выгрузки диалогового окна. Если элемент управления содержит некорректные данные, используется оператор Exit Sub для выхода из процедуры до выполнения оператора Unload.

Данные, введенные пользователем в диалоговое окно, теряются при закрытии окна. Взяв значения элементов управления в UserForm после выгрузки формы, присваиваются начальные данные, а не те, что введены пользователем. Если необходимо сохранить данных, необходимо записать их в переменные уровня модуля в тот период, когда диалоговое окно еще открыто.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]