Программирование >>  Элементы языков с и с++ 

1 ... 103 104 105 [ 106 ] 107 108 109 ... 200


те ее свойства в окне Properties. Вы там найдете свойства showShortcutKeys и ShortcutKeys. Первое из них обеспечивает видимость клавиш быстрого вызова (ShortcutKeys) В наименовании опции (если эти клавиши будут определены). А второе свойство как раз и задает комбинацию клавиш, при нажатии которой опция станет выполняться так, как если бы вы на ней щелкнули мышью. Задание происходит в два этапа, как показано на рис. 11.28.

Результат нажатия этой кнопки /1

Modifiers:

(ЗОг! □ Shift □* Key:


1 1 toolStr )MenuItem2 Qrl+B ►

J toolStripMenuItem3 Ctrl4C 1 toolStripMenuRemy Ctrl+D

Результат нажатия этой кнопки

Вид меню с клавишами быстрого вызова

Чтобы задать, например, комбинацию Ctri-bA, надо в первом выпадающем списке щелкнуть Ctrl, а во втором - А

[ Орция! j Огчияг .. .: J

1 toolStripMenuRem2 ►

j toolStripHenuItem3 Ctrl+C

1 toolStr(jMer jRem4 Ctrl+0

1 \

Вид меню в режиме исполнения приложения:

у 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) обеспечит необходимую пометку выполненной опции (но при условии, что ее свой-



1 ... 103 104 105 [ 106 ] 107 108 109 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика