Офисное программирование

ОглавлениеДобавить в закладки К обложке

4.3. Элементы управления MultiPage, ScrollBar, SpinButton[2]

Коллекция Controls

Для доступа к набору элементов управления диалогового окна можно использовать коллекцию Controls, включающую все элементы управления окна. Каждый элемент управления имеет в этой коллекции индекс, значение которого может быть числом или строкой. Для первого элемента управления индекс равен 0. Числовые индексы определяются порядком размещения элементов в коллекции. Строковое значение индекса соответствует имени (Name) элемента.

Пример 24. Создать форму, имеющую пять элементов: метка, текстовое поле, список, две кнопки. Ввести в текстовое поле и список по умолчанию текст «поле 1», «список 1» (свойство text соответственно у каждого элемента). Первая кнопка «Нажми» выполняет следующее действие: вызывается диалоговое окно, в котором запрашивается разрешение на удаление очередного элемента формы (их пять). Ответ «да» или «нет» выполняет соответствующее действие. Кнопка «Закрыть» закрывает диалоговое окно.

Примечание. Используя коллекцию Controls, программно в цикле организовать скрытие (не удаление!) элементов управления диалогового окна MyForm (свойство Name формы).

Технология выполнения

1. Запустите приложение Word, сохраните новый документ.

2. Создайте форму в режиме конструктора (рис. 42).

Рис. 42. Форма примера 24

3. Обработайте кнопки Нажми и Закрыть.

Кнопка Нажми

Private Sub CommandButton1_Click()

For Each Ctrl In myForm.Controls 'цикл по всем элементам управления

msgCode = vbYesNo + vbQuestion

'Вопрос об очередном элементе управления:

Answer = MsgBox(prompt:="Cкрыть элемент " & Ctrl.Name,

Buttons:=msgCode, Title:="Bonpoc")

If Answer = vbYes Then 'ответ «Да»

Ctrl.Visible = False 'скрыть очередной элемент

End If

Next Ctrl

End Sub

Кнопка Закрыть

Private Sub CommandButton2_Click()

Unload Me

End Sub

4. Откомпилируйте приложение.

5. Запустите на выполнение (рис. 43, 44, 45).

Примечание. Скрытие ненужных элементов в форме можно произвести и другим способом (например, если в форме слишком много элементов, то до нужного добираться по циклу нерационально). Для этого используют свойство Click элементов управления.

Рис. 43. Первоначальный запуск формы и вызов процедуры кнопки Нажми

Рис. 44. Выполнение скрытия элемента label1 и следующий запрос

Рис. 45. Вид формы перед удалением последнего элемента управления

В этом случае необходимо только щелкнуть по нужному элементу и прописать код, для каждого элемента свой:

Private Sub Label1_Click()

msgCode = vbYesNo + vbQuestion

Answer = MsgBox(prompt:="Cкрыть элемент",

Buttons:=msgCode, Title:="Вопрос")

If Answer = vbYes Then

Label1.Visible = False

Else

Label1.Visible = True

End If

End Sub

В результате работа формы будет более рациональной (рис. 46).

Рис. 46. Работа формы по щелчку скрываемого элемента

Набор страниц MultiPage

Элемент управления MultiPage объединяет несколько независимых диалоговых окон – страниц (вкладок). Заголовки страниц обычно видны на одной из сторон элемента на их закладках, а переход на страницу происходит после щелчка по ее закладке. Этот простой переход с одной страницы на другую и делает MultiPage удобным средством для представления разнородных данных, относящихся к одному объекту. Такие данные в «бумажных» офисах хранятся обычно в отдельных папках и образуют дела, досье и т. д. Каждая страница из Multipage – это объект типа Page, а все они включены в коллекцию Pages (страницы). При создании элемента MultiPage в него автоматически помещаются две страницы с именами Page1 и Раgе2. Имена можно изменять, присутствует возможность добавления и новых страниц. Рассмотрим основные свойства набора страниц.


Логин
Пароль
Запомнить меня