|
Программирование >> Элементы языков с и с++
те ее свойства в окне Properties. Вы там найдете свойства showShortcutKeys и ShortcutKeys. Первое из них обеспечивает видимость клавиш быстрого вызова (ShortcutKeys) В наименовании опции (если эти клавиши будут определены). А второе свойство как раз и задает комбинацию клавиш, при нажатии которой опция станет выполняться так, как если бы вы на ней щелкнули мышью. Задание происходит в два этапа, как показано на рис. 11.28. Результат нажатия этой кнопки /1 Modifiers: (ЗОг! □ Shift □* Key:
Результат нажатия этой кнопки Вид меню с клавишами быстрого вызова Чтобы задать, например, комбинацию Ctri-bA, надо в первом выпадающем списке щелкнуть Ctrl, а во втором - А
Вид меню в режиме исполнения приложения: у 1-й опции и 2-й подопции клавиши не появились, а остались только у последних- Рис. 11.28. Вид меню с заданными клавишами быстрого вызова Из рисунка видно, что в режиме исполнения приложения не у всех опций, у которых мы задавали клавиши быстрого вызова, они появились. Из рисунка видно также, что такие клавиши остались только у самых последних опций (у исполнительных), а у тех опций, которые не делятся на подопции, произойдет исполнение алгоритма (выполнится обработчик события click). Какой вывод? Если пользователь запомнит комбинации клавиш у исполнительных опций, то ему нет необходимости двигаться по всему дереву меню (что делается с помощью мыши), а стоит только нажать нужную комбинацию и соответствующая опция исполнится. Вот поэтому и были проигнорированы комбинации клавиш у составных опций меню. Демонстрация изложенного видна из рис. 11.29. Приложение запущено на выполнение, опции не раскрыты, была нажата комбинация клавиш <Ctrl>+<C> и последняя (исполнитель- IHessageBox::Show( Нажата комбинация <Ctrl+C> , Приложение 47 , [HessageBoxButtons: :OK,MessageBoxIcon: :Asterisk)/ : Опция 1 ОчИЯ 2 Приложение 47 1 Нажата комбинация <Qrl+C> Рис. 11.29. Сообщение исполнительной опции рнемся теперь ко второму вопросу, поставленному пользователем разра-[ботчику: каким образом ограничить доступ ко всему меню некоторым операторам? 98 Forml j 1 ,TgJ° ~~] Опция 2 закрыта для доступа: Это аидно уже на этапе дизайна Я Forml опцив 1 I I В©® Опция 3 видна, но станет невидимой в режиме исполнения приложения Рис. 11.30. Закрытие опций меню т) опция выполнилась, выдав сообщение. Текст обработчика события для згой опции представляет собой следующее: [private: System::Void toolStripMenuItem3 Click(System: :Object sender, I System:: EventArgs e) Для этого делается следующее: главная опция или отдельные подопции либо лищаются возможности доступа к ним, либо делаются вообще невидимыми. Первое достигается за счет переброски свойства опции Enabled в значение false, а второе - за счет присвоения свойству visible тоже значения false. Но это делается не в лоб . Следует разработать механизм авторизации доступа к меню, который станет по регистрационным данным пользователя открывать одни опции, делать невидимыми другие и недоступными третьи. На рис. 11.30 показаны три главных опции меню, из которых вторая сделана недоступной, а третья невидимой. Некоторые свойства опций MenuStrip □ Backgroundimage - задает (с ПОМОЩЬЮ выбора через диалоговое окно) фоновое изображение, которое помещается в полосу меню и на фоне которого будут видны его опции. С помощью свойства BackgroundlmagLayout изображение можно подогнать под соответствующий формат (рис. 11.31). Опция 1 Опция 2 Туре Неге Рис. 11.31. Формирование фонового изображения на полосе меню □ Items - через диалоговое окно этого свойства (см. рис. 11.24) формируются опции меню. □ Layoutstyie - СТИЛЬ размещения меню. Выбирается из выпадающего списка. Различные стили показаны на рис. 11.32. □ Checked - С ПОМОЩЬЮ ЭТОГО свойства можно контролировать, была ли > выбрана данная команда меню. Это очень важно при эксплуатации приложения: если в вашем меню множество опций, а вы некоторые из ни.\ уже выполнили, то если не пометить выполненные, возможно по ошибке станете выполнять какую-нибудь опцию снова. Существует свойство checkonciick, которое (если установить его значение в true) обеспечит необходимую пометку выполненной опции (но при условии, что ее свой-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |