Институт управления, бизнеса и права
Опубликован: 25.03.2009 | Доступ: свободный | Студентов: 7349 / 1531 | Оценка: 4.41 / 4.15 | Длительность: 14:33:00
Лекция 4:

Подробности об элементах управления

4.9. OptionButton

04-06-Рамки и радиокнопки.docm — пример к пп. 4.9. – 4.10.

OptionButton — радиокнопка. Не удивляйтесь такому названию. Оно отражает особенности этого элемента управления. Радиокнопки обычно используются группами, а в группе может быть выбрана лишь одна кнопка. Это напоминает выбор одной радиостанции с помощью одной из кнопок на радиоприемнике.

Основное свойство радиокнопки — это Value (Значение) — если оно равно False (Ложь) — радиокнопка не выбрана, если True (Истина) — выбрана. Свойство TripleState позволяет присваивать элементу управления параметр Null, который, как в случае с флажками, блокирует элемент.

Все радиокнопки, расположенные на одной форме, автоматически объединяются в одну группу. Поэтому из всех этих кнопок выбрана может быть лишь одна. Как же быть, если на форме надо расположить несколько групп таких кнопок? Ответ на этот вопрос кроется в использовании так называемых фреймов или рамок (элемент управления Frame ). Радиокнопки, размещенные в пределах рамки, обрабатываются отдельно от кнопок на других рамках или на формах.

4.10. Frame

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

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

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

Создадим форму frm_First и добавим на нее две рамки — fra_First и fra_Second. Добавим две радиокнопки на форму (назовем их opt_1 и opt_2 ). Так же добавим по две радиокнопки в каждую из рамок. В рамку fra_First добавим кнопки opt_3 и opt_4, а в fra_Secondopt_5 и opt_6. Установим параметр TripleState равным True для всех радиокнопок. Подпишем радиокнопки и рамки так, как указано в табл. 4.2.

Таблица 4.2. Подписи рамок и радиокнопок
Имя элемента управления Свойство Caption Value
Fra_First Имена файлов
Fra_Second Место сохранения файлов
opt_1 Сохранить в TXT-файл True
opt_2 Сохранить в DOCX-файл False
opt_3 Автоматически True
opt_4 Задать вручную False
opt_5 Автоматически True
opt_6 Задать вручную False

Добавим на форму кнопку, назовем ее cmd_SetAuto и подпишем: "Автоматически", добавим еще одну кнопку – cmd_SetManual и подпишем ее "Вручную". Теперь создадим обработчики событий Click для кнопок.

Кнопка cmd_SetAuto устанавливает радиокнопки с надписью "Автоматически" (листинг 4.5)

opt_3.Value = True
opt_5.Value = True
Листинг 4.5. Обработчик события Click для cmd_SetAuto

Кнопка cmd_SetManual устанавливает радиокнопки с надписью "Вручную" (листинг 4.6)

opt_4.Value = True
opt_6.Value = True
Листинг 4.6. Обработчик события Click для cmd_SetManual

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

Работа с рамками и радиокнопками

Рис. 4.8. Работа с рамками и радиокнопками

4.11. ToggleButton

ToggleButton — выключатель. Это кнопка, которая может существовать в двух состояниях — включенном и выключенном. По действию она напоминает флажок, и обычно используется точно так же.

Если кнопка находится во включенном состоянии — это может означать включение какой-либо опции, если в выключенном — выключение. Основное свойство такой кнопки — Value (Значение). Оно установлено в False (Ложь), когда кнопка находится в обычном состоянии, и в True (Истина), когда кнопка нажата.

При изменении состояния кнопки генерируется событие Change (Изменение) — его можно использовать для проверки установленного значения и проведения каких-либо действий.

На рис. 4.9. вы можете видеть форму с размещенными на ней выключателями. Один из них включен, другой – выключен.

Выключатели на форме

Рис. 4.9. Выключатели на форме

4.12. ScrollBar

04-07-Полоса прокрутки.docm — пример к п. 4.12.

ScrollBarполоса прокрутки. Используется для плавного изменения каких-либо значений. Например, это может быть выбор параметра из диапазона значений. При настройке этого элемента управления следует учесть, что для его нормальной работы надо установить следующие свойства:

  • Max (Максимум) — максимальное значение полосы.
  • Min (Минимум) — минимальное значение полосы
  • Small Change (Маленькое изменение) — шаг, с которым изменяется значение полосы при прокрутке с помощью кнопок.
  • Large Change (Большое изменение) — шаг, с которым меняется значение при перетаскивании бегунка полосы с помощью мыши.
  • Узнать текущее значение полосы можно, воспользовавшись ее свойством Value (Значение).

При изменении значения полосы прокрутки генерируется событие Change (Изменение). Оно происходит после каждого изменения значения полосы. Если вы перетаскиваете бегунок с помощью мыши, новое значение полосы прокрутки будет сгенерировано лишь тогда, когда вы отпустите кнопку мыши. Для того чтобы непрерывно изменять значение полосы вслед за перетаскиванием бегунка вручную, воспользуйтесь обработчиком события Scroll (Прокрутка).

Расположение кнопок (горизонтальное или вертикальное) выбирается автоматически в зависимости от ширины и высоты полосы прокрутки.

Давайте рассмотрим пример, иллюстрирующий возможности элемента управления ScrollBar и разницу между событиями Change и Scroll. Создадим форму, добавим на нее полосу прокрутки с именем scr_First, оставим ее параметры равными по умолчанию, и две надписи – lbl_Change и lbl_Scroll. Они будут содержать информацию о значении полосы прокрутки, но lbl_Change будет обновляться по событию полосы прокрутки Change (листинг 4.7), а lbl_Scrollпо событию Scroll (листинг 4.8).

lbl_Change.Caption = scr_First.Value
Листинг 4.7. Обработчик события Change для scr_First
lbl_Scroll.Caption = scr_First.Value
Листинг 4.8. Обработчик события Scroll для scr_First

На рис. 4.10. вы можете видеть форму нашего примера в момент перетаскивания бегунка вручную.

Работа с полосой прокрутки

Рис. 4.10. Работа с полосой прокрутки

До тех пор, пока мы не отпустили левую кнопку мыши, при каждом перемещении бегунка вручную будет генерироваться событие Scrollзначение в надписи lbl_Scroll будет меняться при перемещении бегунка. А вот значение в поле lbl_Change, которое обновляется по событию Change, изменится лишь тогда, когда мы отпустим кнопку мыши. В то же время, изменяя значение полосы прокрутки с помощью кнопок прокрутки, мы можем наблюдать лишь изменения поля lbl_Change так как нажатия на эти кнопки генерируют событие Change. А вот поле lbl_Scroll при использовании кнопок обновляться не будет – событие Scroll не генерируется.

Евгений Ушаков
Евгений Ушаков

Добрый день! Поясните, пожалуйста, 3000 р. стоит документ об окончании курса. Если он не нужен, то можно учиться бесплатно?

Александр Новиков
Александр Новиков

Добрый день! Очень нужен справочник по объектам VBA c описание их методов и свойств.

Кто-нибудь знает, где можно приобрести?

(Он конечно есть в VBA - Object browser, но не очень удобный)