Выключатель (ToggleButton)
Воплотим предыдущую задачу в интерфейсе с выключателями (Рис. 10‑13). Рис. 10‑13.Форма с выключателями Начальные условия 1) при создании формы присвойте следующие имена элементам управления: командной кнопке Отмена – cmdОтмена выключателю Осенний семестр – tglОсень выключателю Весенний семестр – tglВесна 2) саму форму назовите frmСеместрToggleButton. Тогда код, который инициализирует форму с двумя выключателями, запишется так: Sub frmСеместрToggleButton_Initialize() With frmСеместрToggleButton .cmdОтмена.Cancel = True .Show End With End Sub Процедуры обработки события Click для каждого элемента управления запишутся следующим образом: Private Sub tglОсень_Click() Выключатели End Sub Private SubtglВесна_Click() Выключатели End Sub Sub Выключатели() If tglОсень.Value = True And tglВесна.Value = True Then MsgBox "Выбраны оба семестра!", vbInformation, _ "Сообщение" ElseIf tglОсень.Value = True And tglВесна.Value = False Then MsgBox "Выбран осенний семестр!", vbInformation, _ "Сообщение" ElseIf tglОсень.Value = False And tglВесна.Value = True Then MsgBox "Выбран весенний семестр!", vbInformation, _ "Сообщение" Else MsgBox "Не выбран ни один семестр!", vbInformation, _ "Сообщение" End If End Sub Private Sub cmdОтмена_Click() Unload Me End Sub Задание: 1. В Модуль11 наберите и протестируйте программу frmСеместрToggleButton_Initialize. 2. В модуле формы frmСеместрToggleButton наберите текст остальных программ и протестируйте работу приложения. Переключатель (OptionButton) В отличие от флажка и выключателя, переключатель позволяет выбрать только один из нескольких взаимоисключающих вариантов. Обычно переключатели собраны в группу и если установлен один, то остальные сброшены. Для удобства восприятия группы переключателей они, как правило, помещаются в рамку (Frame). Итак, если пользователь должен выбрать только один семестр, создадим и пропишем форму, представленную на Рис. 10‑14. Рис. 10‑14. Альтернативный выбор семестров Начальные условия 0) при создании формы присвойте следующие имена элементам управления: командной кнопке Отмена – cmdОтмена выключателю Осенний семестр – optОсень выключателю Весенний семестр – optВесна 1) саму форму назовите frmСеместрOptionButton. Тогда код, который инициализирует форму с двумя переключателями, запишется так: Sub frmСеместрOptionButton_Initialize() With frmСеместрOptionButton .cmdOK.Default = True .cmdОтмена.Cancel = True .optОсень.Value = True .Show End With End Sub Для того чтобы узнать, установлен переключатель или сброшен, воспользуемся свойством Value: Private Sub cmdOK_Click() If optОсень.Value = True Then MsgBox "Выбран осенний семестр!", vbInformation, _ "Сообщение" Else MsgBox " Выбран весенний семестр!", vbInformation, _ "Сообщение" End If End Sub Private Sub cmdОтмена_Click() Unload Me End Sub Задание: 1. В Модуль11 наберите и протестируйте программу frmСеместрOptionButton_Initialize. 2. В модуле формы frmСеместрOptionButton наберите текст остальных программ и протестируйте работу приложения. Счетчик (SpinButton) С помощью счетчика в форме вводятся численные значения. Рассмотрим пример создания простой формы для нахождения суммы чисел, принадлежащих некоторому диапазону. § Форма должна иметь следующий вид: Рис. 10‑15. Форма для нахождения суммы чисел § Минимальное значение счетчиков 0, максимальное – 100. § Результат нахождения суммы выводить в поле Результат при изменении значений От и до(если значение в поле до: больше или равно значению в поле От). § Щелчок по кнопке Отмена выгружает форму из оперативной памяти. Начальные условия 1) при создании формы присвойте следующие имена элементам управления: полю От – txtОт полю до – txtДо Напоминане: именно в этих полях будут отображаться числовые значения, изменяемые с помощью счетчика. Не забудьте о них! 1-му счетчику – spnОт 2-му счетчику – spnДо кнопке Отмена – cmdОтмена полю Результат – txtРезультат 2) саму форму назовите frmСумма. ВЫПОЛНЕНИЕ ЗАДАНИЯ: 1. Создайте форму. 2. Наберите текст программы инициализации формы (в модуле формы): Private Sub UserForm_Initialize() spnОт.Min = 0 spnОт.Max = 100 spnОт.SmallChange = 1 spnДо.Min = 0 spnДо.Max = 100 spnДо.SmallChange = 1 cmdОтмена.Cancel = True End Sub 3. Дважды щелкните (в форме!) по элементу spnОт - появится пустая процедура Private Sub spnОт_Change() txtОт.Value = spnОт.Value Сумма = 0 If Val(txtОт.Value) <= Val(txtДо.Value) Then For i = Val(txtОт.Value) To Val(txtДо.Value) Сумма = Сумма + i Next txtРезультат.Value = Сумма Else txtРезультат.Value = "" End If End Sub 4. То же самое проделайте для счетчика spnДо: Private Sub spnДо_Change() txtДо.Value = spnДо.Value Сумма = 0 If Val(txtОт.Value) <= Val(txtДо.Value) Then For i = Val(txtОт.Value) To Val(txtДо.Value) Сумма = Сумма + i Next txtРезультат.Value = Сумма Else txtРезультат.Value = "" End If End Sub Как вы видите, процедуры spnОт_Change и spnДо_Change очень похожи. Поэтому модернизируйте эти две программы, организовав вызов подпрограммы ИзменениеСчетчика. 5. Наберите программу обработки события «щелчок/нажатие кнопки cmdОтмена», которая выгружает форму из памяти: Private Sub cmdОтмена_Click() Unload frmСумма End Sub Замечания: ü Встроенная функция Val преобразовывает число, написанное в символьном виде, в числовой формат. ü Условие: If Val(txtОт.Value) <= Val(txtДо.Value) Then ü Верхнюю и нижнюю границы пользователь может вводить вручную. Для того чтобы программа реагировала на введенные числа, необходимо добавить процедуру обработки события «изменение значения поля ввода». Для поля ввода txtОт она выглядит следующим образом: Private Sub txtОт_Change() Сумма = 0 If Val(txtОт.Value) <= Val(txtДо.Value) Then For i = Val(txtОт.Value) To Val(txtДо.Value) Сумма = Сумма + i Next txtРезультат.Value = Сумма Else txtРезультат.Value.Value = "" End If End Sub Аналогичная процедура будет и для поля ввода txtДо, поэтому целесообразно оформить их в виде вызова подпрограммы ИзменениеПоляВвода (напишите её самостоятельно). 6. В текстовом поле пользователь может сделать ошибку и ввести символ, а не цифру. Чтобы избежать этого необходимо проверить введенную пользователем последовательность. Как вы знаете, это можно сделать с помощью встроенной функции IsNumeric. Тогда предыдущая процедура примет вид: Private Sub txtОт_Change() If IsNumeric(txtОт.Value) = True Then Сумма = 0 If Val(txtОт.Value) <= Val(txtДо.Value) Then For i = Val(txtОт.Value) To Val(txtДо.Value) Сумма = Сумма + i Next txtРезультат.Value = Сумма Else txtРезультат.Value.Value = "" End If Else: MsgBox "Число введено неверно!" End If End Sub
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1091)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |