Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция по Ms Access.doc
Скачиваний:
92
Добавлен:
19.05.2015
Размер:
1.86 Mб
Скачать

Глава 26. Создание и удаление контекстных меню

Создание контекстных меню очень похоже на создание обычных строк меню.

Только в окне Свойства панели инструментов в раскрывающемся списке Тип (Type) должно быть выбрано значение Кон­текстное меню. При этом пользователь получает предупреждение, что данное контекстное меню исчезнет с экрана.

Чтобы посмотреть или из­менить контекстные меню, нужно выбрать (установить флажок) Контекст­ные меню из списка панелей команд на вкладке Панели инструментов диалогового окна настройки панелей команд.

Тогда на экране появится панель контекстных меню.

Создаваемые пользователем контекстные меню отображаются в меню Настраиваемый.

Добавлять команды в контекстное меню нужно точно так же, как в обычное меню.

Чтобы удалить контекстное меню:

1. Удалите все команды из этого меню, перетаскивая их по очереди на сво­бодное место в окне Microsoft Access.

2. Раскройте вкладку Панели инструментов в диалоговом окне Настройка и нажмите кнопку Свойства.

3. В раскрывающемся списке Выбранная панель выберите нужное контекстное меню.

4. В раскрывающемся списке Тип выберите элемент Панель инстру­ментов, чтобы изменить тип удаляемого объекта, и нажмите кнопку Закрыть.

5. Выделите в списке Панели инструментов соответствующее на­звание панели команд и нажмите кнопку Удалить.

Изменение меню и панелей инструментов с помощью VBA

Меню и панелями инструментов можно программно управлять. В этом возникает необходимость, когда:

1. Сделать недоступным меню, команду меню или кнопку на панели инст­рументов

2. Скрыть или показать меню, команду меню или кнопку панели инструментов.

3. Скрыть или показать строку меню или панель инструментов

Чаще всего приходится изменять панели команд, разрешая или запрещая доступ к отдельным их элементам — командам меню или кнопкам.

Это мо­жет быть связано либо с разграничениями прав доступа, либо с невозмож­ностью в текущей ситуации выполнить определенную команду. Это позво­ляет сделать функция СommandBars(), которая в качестве аргумента использу­ет имя панели команд и возвращает ссылку на эту панель.

Пример :

Эта функция позволяет изменить свойство Доступ (Enabled) элемента панели команд.

Function SetEnabled (barName As String, index As Integer, state As Boolean)

Dim char As Object

Set cbar = CoinmandBars (barName)

cbar.Controls(index).Enabled = state

SetEnabled = True

End Function

В качестве параметров в функцию передаются имя панели команд barName, индекс элемента панели index и значение свойства state.

Переменная char будет содержать ссылку на нужную панель, возвращаемую

функцией CommandBars.

Семейство Controls содержит все элементы панели. Для доступа к конкрет­ному элементу используется индекс, соответствующий номеру элемента в семействе.

В отличие от других семейств объектной модели VBA в семействе controls элементы нумеруются не с нуля, а с единицы.

Это означает, что для ссылки на первый элемент семейства нужно использовать выражение

CommandBar.Controls(1) вместо ожидаемого CommandBar.Controls (0).

Аналогичная функция может быть использована для того, чтобы скрыть или показать отдельные меню или кнопки на панели команд, только изменяться должно свойство visible того же самого семейства controls:

Function SetEnabled (barName As String, index As Integer, state As Boolean)

Dim char As Object

Set char = CommandBars(barName)

char.Controls(index).Visible = state

SetEnabled = True

End Function

Созданные вами меню и панели инструментов должны в нужное время по­являться на экране.

В большинстве случаев это обеспечивается тем, что соз­дается одна общая строка меню и одна общая панель инструментов, кото­рые выводятся на экран при запуске приложения и заменяются в нужное время меню и панелями инструментов, связанными с формами и отчетами (если, конечно, вы отключили встроенные меню и панели инструментов Access, задав соответствующие параметры запуска).

Тем не менее, существует возможность программно управлять выводом на экран строк меню и панелей инструментов.

Чтобы задать свою собственную строку меню в качестве главной строки ме­ню в приложении можно либо изменить параметр Строка меню в окне Параметры запуска.

Для того чтобы показывать или прятать панели инструментов в процессе работы программы, можно использовать макрокоманду панельИнструментов. Эта макрокоманда имеет два аргумента: имя панели инстру­ментов и значение Показать.

Поле Показать на панели инструментов позволяет определить три зна­чения:

1. Да (Yes) — панель инструментов будет всегда отображаться на экране.

2. В обычном режиме (Where Appropriate) — панель инструментов будет ото­бражаться только при необходимости. Этот режим используется для встроенных панелей инструментов.

3. Нет (No) — панель инструментов будет скрыта.

Вместо макроса можно использовать метод showToolbar объекта DoCmd.

Это будет выглядеть в коде VBA следую­щим образом:

DoCmd ShowTooibar "Главное меню", acToolbarYes,

где acToolbarYes — встроенная константа.