Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1888.DOC
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.52 Mб
Скачать

6.2.11. Управление доступом к элементу

У всех элементов управления есть свойство Enabled (Доступен), позволяющее сделать этот элемент активным – поместить его в фокус. Если свойству Enabled присвоить значение False, элемент управления становится недоступен и не может попасть в фокус при нажатии клавиши Tab. Когда динамически менять доступность элементов управления, зависит от задач, решаемых в диалоговом окне. Типичный случай – запрет на доступ к окну поля ввода после того, как программа поместила в него данные, которые не должны далее изменяться пользователем (например, текст справки, которую можно только прочесть и распечатать). Другой случай – отключение (включение) доступа к группам переключателей или кнопок зависимого выбора (OptionButton) или отдельным таким кнопкам в зависимости от состояния флажка (CheckBox). При этом действия по изменению доступа надо проводить в процедуре, обрабатывающей событие Change для флажка. Она должна автоматически вызываться, когда этот флажок меняет свое состояние, т. е. становится неотмеченным или отмеченным. Для изменения доступа нужно выполнить следующие действия:

1. Создать новое диалоговое окно (UserForm), включить в него один флажок (CheckBox), управляющий элемент Frame (Рамка) и поместить в рамку четыре переключателя (OptionButton). Заголовки управляющих элементов (значения свойства Caption) задаются как на рис. 6.20.

Рис. 6.20. Окно после отключения двух опций

2. Дважды щелкнуть кнопкой мыши по флажку, чтобы вывести окно с кодом процедур, выбрать в списке объектов слева вверху CheckBox1 (это имя присвоила флажку среда VBA), затем в списке процедур обработки событий справа вверху щелкнуть кнопкой мыши по событию Change. Дополнить появившуюся заготовку процедуры CheckBox1_Change:

Private Sub CheckBox1_Change()

With Me

If .CheckBoxl.Value = True Then

.OptionButton3.Enabled = False

.OptionButton4.Enabled = False

Else

.OptionButton3.Enabled = True

.OptionButton4.Enabled = True

End If

End With

End Sub

3. Запустить диалоговое окно и установить флажок Отключить сложные. Вид получившегося окна приведен на рис. 6.20.

6.2.12. Перемещение фокуса на элемент управления

Обычно фокус перемещается по элементам управления диалогового окна в прямом направлении при нажатии пользователем клавиши Tab, а в обратном – комбинации Shift + Tab. Порядок перемещения задается на стадии проектирования окна. В процессе работы программы можно переместить фокус методом SetFocus (Поместить в фокус) элемента, который должен оказаться в фокусе.

Допустим, поле ввода Mytxt диалогового окна служит для ввода обязательной информации, а при выборе кнопки InputData должны вводиться данные из этого поля. Если при выборе кнопки InputData данных в поле ввода нет, должен раздаться звуковой сигнал, а фокус возвратиться в поле ввода. Для реализации этого сценария в процедуру обработки события Click командной кнопки включим следующий фрагмент:

Private Sub InputData_Click()

If Me.Mytxt.Value = "" Then ' данных нет

Beep

Me.Mytxt.SetFocus ' установка фокуса на поле

Exit Sub

Else ' обработка введенных данных

Me.Mytxt.Text "Данные не пусты"

End If

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]