Опубликован: 25.03.2009 | Уровень: для всех | Доступ: свободно
Лекция 4:

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

4.16. TabStrip

04-10-Набор вкладок.xlsm— пример к п. 4.16.

TabStrip — набор вкладок. Используется для организации нескольких рабочих областей на форме. В объект входит семейство Tabs (Вкладки), которое содержит все активные вкладки.

Основное событие объекта — Change (Изменение). Оно происходит при смене вкладки.

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

Дело в том, что TabStrip не содержит элементы управления внутри себя. Он служит как бы "фоном" для размещения элементов.

Cамый яркий пример использования TabStrip — это создание приложений с многоязыковым интерфейсом. Рассмотрим пример.

Добавим в проект форму frm_First, разместим на ней элемент управления TabStrip с именем tab_First. По умолчанию у TabStrip две вкладки. Первая по порядку вкладка имеет номер 0, вторая — 1 и т.д. Для того, чтобы узнать номер активной вкладки, можно воспользоваться свойством Value элемента управления TabStrip.

Для того, чтобы изменить надписи на вкладках, добавить новые и т.д. служит контекстное меню, которое появляется на элементе управления TabStrip при щелчке по нему правой кнопкой мыши. Подпишем первую вкладку Русский, вторую — English.

Добавим на форму, поверх tab_First, метку с именем lbl_First и текстом Добро пожаловать, а так же кнопку cmd_First с надписью Вперед (рис. 4.14.).

 Набор вкладок на форме

Рис. 4.14. Набор вкладок на форме

Теперь добавим обработчик события Change для tab_First. (листинг 4.13).

If tab_First.Value = 0 Then
lbl_First.Caption = "Добро пожаловать!"
cmd_First.Caption = "Вперед"
End If
If tab_First.Value = 1 Then
lbl_First.Caption = "Welcome!"
cmd_First.Caption = "Next"
End If
Листинг 4.13. Обработчик события Change для tab_First

В этом листинге вы можете видеть конструкцию сравнения и принятия решений If-End If. Подробнее о ней мы будем говорить в "Основы VBA: синтаксис, переменные, типы данных" . Если "перевести" один из блоков листинга 4.13. на обычный язык, то получится следующее:

Если tab_First.Value=0 Тогда
lbl_First.Caption = "Добро пожаловать!"
cmd_First.Caption = "Вперед"
Конец сравнения

То есть в блоке If мы сравниваем свойство Value и, если оно равно 0, выполняем код, который находится между If и End If. Иначе мы ничего не выполняем и переходим к следующему сравнению. Одно из них выполнится в любом случае, так как на элементе tab_First есть лишь две вкладки.

В результате, если выбрана первая вкладка (индекс 0), свойствам Caption элементов управления lbl_First и cmd_First присваиваются русскоязычные слова. Если же выбрана вкладка с индексом 1, элементам управления присваиваются англоязычные названия.

4.17. Calendar

04-11-Календарь.docm — пример к п. 4.17.

Calendar — календарь. Этот объект удобно использовать для ввода и отображения даты. Для того чтобы считать дату, можно использовать его свойство Value (Значение). С помощью этого же свойства можно установить дату на календаре.

При изменении дня недели генерируется событие Click (Щелчок), при смене месяца или года – события NewMonth (Новый месяц) и NewYear (Новый год).

Давайте рассмотрим пример. Добавим на форму элемент управления Calendar, назовем его cld_First, добавим второй календарь с именем cld_Second. Добавим на форму кнопку — cmd_First, с подписью "Вывести дату". По нажатию на кнопку cmd_First в окне сообщения должна выводиться дата, установленная в cld_First (листинг 4.14).

При изменении даты в календаре cld_First, в календаре cld_Second должен устанавливаться тот же месяц, который установлен в cld_First, число месяца должно устанавливаться на 1 день месяца (листинг 4.15).

MsgBox (cld_First.Value)
Листинг 4.14. Обработчик события Click для cmd_First
cld_Second.Month = cld_First.Month
cld_Second.Day = 1
Листинг 4.15. Обработчик события Click для cld_First

На рис. 4.15. вы можете видеть форму с парой календарей.

Работа с календарем

Рис. 4.15. Работа с календарем
Евгений Ушаков
Евгений Ушаков
О стоимости курса
Александр Новиков
Александр Новиков
Справочник по объектам VBA
Александр Левченко
Александр Левченко
Украина, Киев