Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3974 / 230 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 5:

Работа с меню и диалоговыми окнами

Добавление клавиш доступа к командам меню

В большинстве приложений команды меню можно вызывать с помощью клавиатуры. Например, чтобы в Visual Studio открыть меню File (Файл), нужно нажать клавишу (Alt) а затем (Ф). Когда меню File (Файл) откроется, то, чтобы выполнить команду Print (Печать), достаточно нажать на клавиатуре (П). Клавиши, которые вы нажимаете вместе с (Alt) или в открытом меню, называются клавишами доступа (или клавишами быстрого доступа ). В конкретном элементе меню клавишу доступа можно определить по подчеркнутому символу.

Чтобы добавить в главное меню клавишу доступа, активизируйте Menu Designer (Конструктор меню) и введите перед требуемой буквой в имени меню символ "амперсанд" (&). Во время выполнения программы соответствующая клавиша на клавиатуре будет работать как клавиша быстрого доступ к меню.

Совет. По умолчанию Windows 2000 не подчеркивает в программе клавиши доступа до тех пор, пока пользователь не нажмет в первый раз клавишу (Alt). Это поведение можно отключить на закладке Effects (Эффекты) в свойствах Display (Экран).

Сейчас мы добавим клавиши доступа для меню Дата.

Соглашения о пунктах меню

По соглашению, в приложениях для Microsoft Windows каждое название и команды меню начинаются с заглавной буквы. Часто первыми двумя командами меню в строке меню являются Файл (File) и Правка (Edit), а последним является Справка (Help). Часто встречаются названия команд View (Вид), Формат (Format) и Окно (Window). Не имеет значения, какие меню и команды вы используете в приложении - главное, чтобы они были понятны и соответствовали своим названиям. Меню и команды должны быть просты в использовании и иметь как можно больше общего с другими приложениями для Windows. При создании элементов меню придерживайтесь следующих рекомендаций.

  • Используйте короткие и ясные названия, состоящие из одного или максимум двух слов.
  • Каждому элементу меню назначайте клавишу доступа. Если возможно, используйте для этого их первую букву.
  • У элементов меню, расположенных на одном уровне видимости, клавиши доступа не должны совпадать.
  • Если команда используется как переключатель "включено/выключено", то когда она активна, рядом с ней должна быть видна галочка. Чтобы добавить такую пометку, в окне Properties (Свойства) для этой команды свойство Checked должно иметь значение True.
  • Если команда при нажатии выполняется не сразу, а от пользователя потребуется дополнительные действия, поставьте после такой команды многоточие ( \dots ). Оно указывает, что если пользователь выберет эту строку, то откроется диалоговое окно.
Добавление клавиш доступа
  1. На форме выберите меню Дата, а затем щелкните на нем еще раз. В названии появится курсор редактирования текста. Появление текстового курсора означает, что название меню можно изменить или добавить символ &, чтобы обозначить клавишу доступа.
  2. Чтобы убедиться, что курсор находится перед первой буквой, нажмите на клавишу со стрелкой влево. Курсор будет мигать перед буквой "Д" в слове Дата.
  3. Введите & (амперсанд), чтобы указать, что буква "Д" является клавишей доступа для меню Дата.
  4. В списке меню выберите команду Число, а затем щелкните на ней еще раз, чтобы появился курсор редактирования текста.
  5. Введите & (амперсанд) перед буквой "Ч". Теперь буква "ч" определена как клавиша доступа для команды Число.
  6. В списке меню выберите команду Время, а затем щелкните на этой команде второй раз, чтобы появился курсор.
  7. Введите & (амперсанд) перед буквой "В". Теперь буква "В" определена как клавиша доступа для команды Время.
  8. Нажмите клавишу (Enter). Нажатие на (Enter) фиксирует изменения в тексте. Ваша форма будет выглядеть примерно так.


    Теперь с помощью Конструктора меню давайте изменим порядок команд День и Время. Изменение порядка элементов меню - это важный навык, так как это требуется довольно часто.

Изменение порядка элементов меню
  1. Выберите в форме меню Дата, чтобы развернуть элементы этого меню. Изменить порядок элементов очень просто - нужно просто перетащить элемент на новое место в меню.
  2. Перетащите надпись Время на надпись День и отпустите клавишу мыши. Перетаскивание элемента меню поверх другого элемента означает, что вы хотите разместить его перед вторым элементом. Visual Studio немедленно перемещает элемент меню Время на новое место перед элементом День.

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

Совет. Чтобы удалить из меню ненужный элемент, щелкните на этом элементе, а затем нажмите клавишу (Delete).

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

После того, как меню и команды настроены с помощью объекта MainMenu, они также становятся объектами программы. Чтобы заставить объекты меню выполнять осмысленную работу, необходимо написать для них процедуры обработки событий. Процедуры обработки событий меню обычно содержат операторы, которые показывают информацию в пользовательском интерфейсе, обрабатывают ввод или изменяют одно или несколько свойств меню. Если для обработки команды требуется получить дополнительную информацию, то процедура обработки события обычно открывает диалоговое окно. Для этого используется один из элементов управления диалоговых окон Windows Forms или один из элементов управления для ввода, с которыми мы работали в лекции 3.

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

Добавление на форму объекта надпись

  1. В области элементов выберите элемент управления Label.
  2. Нарисуйте в центре формы надпись среднего размера. На форме появится объект Label, и в коде программы у него будет имя Label1.
  3. Задайте для этой надписи следующие свойства:

    Объект Свойство Значение
    Label1 BorderStyle FixedSingle
    Font Microsoft Sans Serif, жирный , 14 пунктов
    Text (empty)
    TextAlign MiddleCenter

Ваша форма должна выглядеть примерно так.


Теперь добавим операторы в процедуры обработки событий для обработки команд меню Время и День.

Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?