Основы офисного программирования и язык VBA


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


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

Выполните следующие действия:

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

    Окно "Пример управления доступом"

    Рис. 12.15.  Окно "Пример управления доступом"

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

    Private Sub CheckBox1_Change() With Me If.CheckBox1.Value Then 'отключение опций .CheckBox4.Enabled = False .CheckBox5.Enabled = False Else 'включение опций .CheckBox4.Enabled = True .CheckBox5.Enabled = True End If End With

    End Sub




    Начало  Назад  Вперед



    Книжный магазин