Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ И ЯЗЫК VBA - 3....doc
Скачиваний:
37
Добавлен:
17.12.2018
Размер:
1.65 Mб
Скачать

События SpinDown (Уменьшить счетчик), SpinUp (Увеличить счетчик)

Событие SpinDown возникает, когда пользователь щелкает кнопку счетчика "стрелка-вниз" для вертикального счетчика или "стрелка-влево" для горизонтального счетчика. Оно уменьшает значение счетчика. Событие SpinUp возникает, когда выбираются кнопки-стрелки "вверх" или "вправо". Это событие связано с увеличением значения счетчика.

Процедуры обработки этих событий не имеют аргументов:

Private Sub объект_SpinDown (),

Private Sub объект_SpinUp ().

Событие Zoom (Расширение)

Возникает при изменении свойства Zoom у диалогового окна или элементов рамка и набор страниц.

Заголовок процедуры обработки события Zoom для набора страниц имеет вид:

Private Sub объект_Zoom (индекс As Long, Процент As Integer)

а для рамки:

Private Sub объект_Zoom (Percent As Integer)

Здесь объект - имя объекта, которому принадлежит процедура, index - индекс страницы, которая изменяет размер, а Percent (Процент) - задает размер растяжения или сжатия в процентах. Его возможные значения лежат в диапазоне от 10% до 400%. Если значения меньше 100, размер диалогового окна уменьшается, больше 100 - увеличивается. В процедуре можно задать величину этого параметра.

В следующем примере при расширении окна в него добавляется полоса прокрутки, а при уменьшении - она убирается.

Private Sub UserForm_Zoom (Proc As Integer)

Dim NewSize As Double

If Proc >= 100 Then ' увеличение размера

ScrollBars = fmScrollBarsBoth ' создать полосы прокрутки

ScrollLeft = 0

ScrollTop = 0

NewSize = Width * Proc / 100

ScrollWidth = NewSize ' ширина полосы прокрутки

NewSize = Height * Proc / 100

ScrollHeight = NewSize ' высота полосы прокрутки

Else ' уменьшение размера

ScrollBars = fmScrollBarsNone ' скрыть полосу прокрутки

ScrollLeft = 0

ScrollTop = 0

End If

End Sub

Методы Метод Add (Добавить)

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

Вызов метода Add для вставки страницы или вкладки имеет вид:

Set Object = объект. Add ([Name [, Caption [, index]]])

Для добавления элемента управления к диалоговому окну или странице используется присвоение:

Set Control = объект. Add (ProgID [, Name [, Visible]])

Здесь объект - имя объекта (коллекции), к которому добавляется элемент, Name - задает имя (свойство Name) добавляемого объекта (если его нет, система присвоит добавленному элементу стандартное имя), Caption - задает заголовок страницы или вкладки, появляющийся на закладке, index - указывает положение страницы или вкладки в коллекциях Pages или Tabs, соответственно. ProgID - программный идентификатор добавляемого элемента, который представляет собой строку символов (без пробелов), идентифицирующую класс объектов. У этой строки структура обычно такова: <Поставщик>. <Компонента>. <Версия>. Программный идентификатор ProgID отображается на идентификатор класса (CLSID), т. е. на уникальный идентификатор (UUID), регистрируемый в системном реестре Windows. Необязательный булев параметр Visible указывает, виден ли объект на экране. По умолчанию он равен True (объект виден).

Вот значения программного идентификатора ProgID для стандартных элементов управления:

флажок

Forms. CheckBox. 1

комбинированный список

Forms. ComboBox. 1

командная кнопка

Forms. CommandButton. 1

рамка

Forms. Frame. 1

изображение

Forms. Image. 1

метка

Forms. Label. 1

список

Forms. ListBox. 1

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

Forms. MultiPage. 1

переключатель

Forms. OptionButton. 1

полоса прокрутки

Forms. ScrollBar. 1

счетчик

Forms. SpinButton. 1

полоса вкладок

Forms. TabStrip. 1

поле ввода

Forms. TextBox. 1

выключатель

Forms. ToggleButton. 1

Метод Add возвращает объект Page при вставке страницы в набор страниц и объект Tab при вставке вкладки в полосу вкладок. В остальных случаях он возвращает объект из класса, определяемого значением ProgID. После добавления элемента управления возбуждается событие AddControl.

Давайте добавим элемент управления к окну во время работы программы. Допустим, диалоговое окно InsertElem содержит командную кнопку cmbNewCtrl "Добавить элемент" и группу из двух переключателей: Opb1 "поле ввода" и Opb2 "список":

Рис. 13. 8.  Окно перед добавлением элемента

При выборе кнопки в окно будет вставляться в зависимости от того, какой из переключателей включен, либо два поля ввода с именами Text1 и Text2, первое из которых содержит приглашение "Введите имя", либо новый список NewList со списком имен.

Dim NewCtrl As Control

Dim Inserted As Boolean

Private Sub UserForm_Initialize ()

Inserted = False

Opb1. Value = True

End Sub

Private Sub CommandButton1_Click ()

If Inserted = False Then

If Opb1. Value = True Then ' выбрано поле ввода

' добавляем 2 поля ввода

Set NewCtrl = Controls. Add ("Forms. TextBox. 1", "Text1")

NewCtrl. Left = 96

NewCtrl. Top = 12

NewCtrl. Width = 80

NewCtrl. Height = 20

NewCtrl. Text = "Введите имя"

Set NewCtrl = Controls. Add ("Forms. TextBox. 1", "Text2")

Controls ("Text2"). Left = 96

Controls ("Text2"). Top = 50

Controls ("Text2"). Width = 80

Controls ("Text2"). Height = 20

Else ' добавляем список

Set NewCtrl = Controls. Add ("Forms. ListBox. 1", "NewList")

NewCtrl. Left = 96

NewCtrl. Top = 12

NewCtrl. Width = 80

NewCtrl. Height = 70

NewCtrl. AddItem ("Анна")

NewCtrl. AddItem ("Елена")

NewCtrl. AddItem ("Ирина")

NewCtrl. AddItem ("Мария")

End If

Inserted = True

Else: MsgBox ("Элемент уже добавлен!" & vbCrLf & "Второй добавить не могу!")

End If

End Sub

Пример 13.1. (html, txt)

Вот результаты выбора командной кнопки при разных значениях переключателей:

увеличить изображение Рис. 13. 9.  Результаты вставки элементов