Опубликован: 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. Работа с календарем
Евгений Ушаков
Евгений Ушаков

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

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

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

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

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

Евгений Кленов
Евгений Кленов
Россия
Пизда Хуй
Пизда Хуй
Россия, Зимбабве