Урок 29. Создаем горизонтальное меню

Урок из серии: «Программирование на Visual Basic.NET для школьников»

Почти все программы Windows позволяют управлять ими при помощи строки меню. В наших программах пока что никакого меню не было.

На предыдущем уроке было рассказано, как работать с текстовыми файлами.

В этом уроке мы познакомимся с элементом управления MainMenu,  научимся с его помощью создавать горизонтальное профессионально выглядящие меню и  обрабатывать выбор пользователя в коде программы.

Краткая справочная информация

Меню расположено в строке меню и представляет собой список команд, объединенных в логические группы. Когда пользователь нажимает на названии группы, то в раскрывающемся списке появляются команды этого меню.

Большинство команд меню исполняется немедленно после нажатия,  однако если команда меню оканчивается многоточием (…), Visual Basic выводит диалоговое окно, запрашивающее перед исполнением команды дополнительную информацию.

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

Элемент управления MainMenu

Объект главного меню появляется не на поле формы, а под ней. В Visual Studio .NET невидимые объекты, в том числе меню и таймеры, показываются в среде разработки на отдельной панели, которая называется Областью компонентов. На этой панели их можно выделять, настраивать их свойства или удалять.

В дополнение к объекту меню, расположенному в области компонентов, создаваемое меню графически изображается в верхней части формы.

После того, как меню добавлено в форму, для обработки команд меню можно использовать процедуры обработки событий. Основное событие для элементов меню —  MenuItem_Click — щелчок на элементе меню.

Проект «MyMenu»

Создадим проект, который будет иметь горизонтальное меню с названием Дата. В нем должно содержаться вложенное подменю из двух команд,   показывающих текущую дату и время.  Кроме меню на форме установим элемент управления Label (Надпись) для отображения выбранных даты или времени.

Создание меню

  1. Запустите Visual Studio, создайте новый проект с именем MyMenu.
  2. Выберите элемент управления MainMenu на закладке Windows Forms окна области элементов и установите на поле формы.Не беспокойтесь по поводу его расположения — Visual Studio автоматически передвинет этот элемент управления в нужное место и задаст его размер. В области компонентов появится объект MainMenu (Меню),  создаваемое меню графически изображается в верхней части формы.
  3. Чтобы ввести название меню, нужно щелкнуть по полю Прототип для текста. После этого можно добавлять заголовки подменю и других меню, выбирая нужные поля с помощью стрелок и вписывая туда требуемые названия.Щелкните на поле Прототип для текста, введите Дата, а затем нажмите клавишу (Enter). Слово «Дата» стало названием первого меню, и появились два новых поля Прототип для текста, позволяющие создать элементы подменю (команды в меню Дата) и дополнительные меню. В данный момент выберите подменю.

    Если меню с формы исчезает, выберите объект MainMenu1 в области компонентов, и оно снова появится.

  4. Чтобы в меню Дата создать новую команду, введите слово День, а затем нажмите клавишу (Enter). Visual Studio добавит команду к меню и выделит следующий элемент подменю.
  5. Наберите слово Время, а затем нажмите клавишу Enter.
  6. Теперь у вас есть меню Дата с двумя командами меню — День и Время.  Форма будет выглядеть примерно так.Элемент управления MainMenu. Конструктор меню
  7. Чтобы закрыть Конструктор меню, щелкните на поле формы. Конструктор меню закроется.
  8. Теперь чтобы увидеть Конструктор меню и начать с ним работать, нужно щелкнуть на названии меню. В поле формы нажмите слово Дата. Меню появляется снова, с уже знакомыми полями Прототип для текста. Теперь его опять можно настраивать.

Редактирование элементов меню

  1. Выберите  меню Дата, чтобы развернуть элементы этого меню.
  2. Изменить порядок элементов очень просто — нужно просто перетащить элемент на новое место в меню.Перетащите надпись Время на надпись День и отпустите клавишу мыши. Перетаскивание элемента меню поверх другого элемента означает, что вы хотите разместить его перед этим элементом. Элемент меню Время переместится на новое место перед элементом День.
  3. Чтобы удалить из меню ненужный элемент, щелкните на этом элементе, а затем нажмите клавишу (Delete).

Мы закончили создавать пользовательский интерфейс для меню Дата. Теперь нужно запрограммировать процедуры, соответствующие строкам меню, для обработки выбора пользователя.

Обработка выбора меню

После того, как меню и команды настроены с помощью объекта MainMenu, они также становятся объектами программы.

Чтобы заставить объекты меню выполнять осмысленную работу, необходимо написать для них процедуры обработки событий.

Добавим к форме объект надпись, показывающую результат работы команд Время и День из меню Дата.

  1. Добавим на форму объект надпись.В области элементов выберите элемент управления Label (Надпись), нарисуйте в центре формы надпись среднего размера.

    На форме появится объект Label, и в коде программы у него будет имя Label1.

  2. Задайте для этой надписи следующие свойства:
    Объект Свойство Значение
    Label1 BorderStyle FixedSingle
    Font Font Microsoft Sans Serif, жирный , 14 пунктов
    Text (empty)
    TextAlign MiddleCenter
  3. Ваша форма должна выглядеть примерно так.Элемент управления MainMenu. Надпись для вывода даты и времени
  4. Теперь добавим операторы в процедуры обработки событий для обработки команд меню Время и День. Щелкните на меню Дата, чтобы его раскрыть.
  5. Чтобы открыть в редакторе кода процедуру обработки событий для команды Время, дважды щелкните мышью на этой команде. В редакторе кода появится процедура события MenuItem3_Click.Добавьте в процедуру следующий оператор
    Label1.Text = TimeString

    Этот оператор присваивает текущее время (по системным часам) свойству Text объекта Label1, которое  и показывается в виде надписи. Предыдущий текст в объекте Label1, если он имелся, будет заменен.

    TimeString — это свойство, в котором содержится текущее системное время.

  6. Нажмите на клавишу со стрелкой вниз.  Visual Basic проверяет каждую строку в процессе ее ввода и ищет в них синтаксические ошибки. Набор строки можно закончить, нажав клавишу (Enter).
  7. В Обозревателе решений нажмите кнопку Просмотреть конструктор, а затем дважды щелкните мышью на команде День в меню Дата.В редакторе кода откроется процедура обработки событий MenuItem2_Click.Добавьте в процедуру следующий оператор
    Label1.Text = DateString

    Оператор присваивает сегодняшнее число (по системным часам) свойству Text объекта Label1, которое показывается в виде надписи.

    DateString — это свойство, в котором содержится системная дата.

    Чтобы закончить ввод строки, нажмите клавишу со стрелкой вниз.

  8. Мы закончили создавать программу, в которой используется меню. Теперь нужно сохранить изменения в проекте и запустить его.
  9. На стандартной панели инструментов нажмите кнопку Сохранить все.
  10. Проверьте программу. Нажмите кнопку Начать, программа Menu запустится в среде разработки.
  11. В строке меню выберите пункт Дата, появится меню Дата.
  12. В строке меню выберите команду Время. В поле надписи появится текущее системное время, как показано ниже.Объект Label1 для вывода даты и времени
  13. Теперь смотрим, какое сегодня число. В строке меню выберите команду День. В поле надписи появится дата.
  14. Чтобы остановить программу, нажмите кнопку Закрыть в строке заголовка программы.

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

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

Следующий урок: Использование элементов управления для диалоговых окон

Подписаться
Уведомить о
guest

1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Лев
Лев
12 лет назад

Урок честно сказать не очень. Но я всё же разобрался что к чему и всё заработало. Правда в какие то моменты я хотел спросить у знающих людей что с этим делать, но потом всё равно решил разобраться во всём сам. Доработайте урок, я то ладно но другие люди не поймут что тут надо делать.