Многоуровневые меню
Практически любая программа, написанная для системы Windows, содержит многоуровневые меню или меню, в которых команды сгруппированы по их логическому назначению. При запуске программы в строке меню диалогового окна обычно видны только элементы меню верхнего уровня. Для открытия какого-либо меню нужно просто на нем щелкнуть. В результате на экране появится список элементов, которые входят в выбранное вами меню и составляют его подменю. Каждый элемент подменю может представлять либо отдельную команду, либо другое подменю. В Visual Basic можно создавать до шести уровней вложенности меню. В реальных программах рекомендуется использовать не более двух-трех. Причина состоит в том, что глубоко вложенные меню затрудняют работу и раздражают пользователей.
У
ровень
вложенности пункта меню отображается
величиной отступа названия пункта меню
от левого края области предварительного
просмотра. Изменить уровень меню можно
с помощью кнопок со стрелками вправо
или влево.
П
ункты
меню первого уровня отображаются в
строке меню формы. Каждый пункт меню
второго уровня является подпунктом
меню первого уровня, под которым он
расположен. Для изменения последовательности
расположения пунктов меню в области
предварительного просмотра выделите
тот пункт, который хотите переместить
и нажмите кнопку со стрелкой вверх или
вниз.
Для удаления пункта меню выделите в области предварительного просмотра тот пункт, который хотите удалить и нажмите кнопку Delete.
Для вставки нового пункта меню выделите в области предварительного просмотра тот пункт, перед которым вы хотите вставить новый пункт, и нажмите кнопку Insert.
Группировка элементов меню
Помимо того, что элементы управления меню можно разместить по различным логическим уровням, элементы меню одного уровня можно визуально сгруппировать. Для этого в нужных местах длинного списка меню обычно помещается разделительная линия (separator bar). Она создается с помощью редактора меню точно так же, как и любой другой элемент управления меню, за одним исключением – в свойство Caption нужно поместить дефис (-). В результате будет создана линия, которая разделяет меню по всей ширине.
Разделительная линия также является элементом управления меню, поэтому ему необходимо задать уникальное значение свойства Name. Обычно для этой цели используются пронумерованные имена, например, такие как mnu1, mnu2 и т.д. Разделительная линия является неактивным элементом управления и для неё нельзя создать процедуру обработки события.
Разделительную линию нельзя использовать в меню первого уровня (в строке меню формы). Она может быть только частью вложенного меню.
Написание кода для обработки команд меню
Чтобы создать процедуру обработки для элемента меню, щелкните на нужном пункте меню. В результате откроется окно кода, в котором будет находиться шаблон процедуры обработки события Click. Все происходит точно так же, как и после двойного щелчка на одном из элементов правления формы. Вам остается лишь ввести код процедуры обработки.
КонтекстнОе меню
В Visual Basic также предусмотрен еще один тип меню - контекстные, или .всплывающие. Данные меню могут появляться в любом месте формы как реакция программы на некоторое действие пользователя (например, щелчок правой кнопкой мыши или нажатие специальной комбинации клавиш).
Контекстные меню часто используются для выполнения некоторых действий над выбранным объектом или частью формы. Например, вы можете поместить в контекстное меню команды, с помощью которых можно изменить атрибуты форматирования текстового поля (тип и размер шрифта, его цвет и др.). Данный тип меню используется практически во всех современных приложениях.
При вызове контекстного меню (как правило, после щелчка правой кнопкой мышью) оно появляется рядом с указателем мыши, и пользователь может выбрать нужную команду. Меню автоматически закрывается после выбора команды.
