Компонент MenuStrip. Общие сведения (окончание)

   
На этом шаге мы рассмотрим назначение "горячих клавиш" пунктам меню и особенности их использования.

   
Допустим, мы опцию сформировали. Но возникают два вопроса, которые опытный пользователь сразу вам задаст. Он скажет: "Я знаю, что при
эксплуатации любой программы для обеспечения большей скорости работ оператора надо иметь возможность работать не только с помощью мыши,
но и с помощью клавиатуры. Вы это предусмотрели? И второе - у меня в приложении намечается довольно сложное меню, которое отражает функцию
моего предприятия. Поэтому с приложением будут работать многие операторы, и я бы хотел, чтобы оператор, работающий с одним разделом меню,
не мог работать с другим, точнее, чтобы он не имел к нему доступа".

   
И вы должны будете его требования учесть. Как же этого добиться?

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


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


Рис.2. Задание клавиш быстрого вызова для главных опций и подопций

   
Из рисунка видно, что в режиме исполнения приложения не у всех опций, для которых мы задавали клавиши быстрого вызова, они появились.
Из рисунка видно также, что такие клавиши остались только у самых последних опций (исполнительных), а у тех опций, которые не делятся на
подопции, произойдет исполнение алгоритма (выполнится обработчик события click).

   
Какой вывод? Если пользователь запомнит комбинации клавиш у исполнительных опций, то ему нет необходимости двигаться по всему дереву
меню (что делается с помощью мыши), а стоит только нажать нужную комбинацию, и соответствующая опция исполнится. Вот поэтому и были
проигнорированы комбинации клавиш у составных опций меню. Демонстрация изложенного видна из рисунка 3.


Рис.3. Сообщение исполнительной опции

   
Приложение запущено на выполнение, опции не раскрыты, была нажата комбинация клавиш Ctrl+B и последняя (исполнительная) опция выполнилась,
выдав сообщение. Текст обработчика события для этой опции представляет собой следующее:

private: System::Void подопция11ToolStripMenuItem_Click(System::Object^  sender, 
      System::EventArgs^  e) {
	 MessageBox::Show("Нажата комбинация Ctrl+В", "Клавиши быстрого доступа", 
              MessageBoxButtons::OK,MessageBoxIcon::Asterisk);
 }

   
Вернемся теперь ко второму вопросу, поставленному пользователем разработчику: каким образом ограничить доступ ко всему меню некоторым операторам?

   
Для этого делается следующее: главная опция или отдельные подопции либо лишаются возможности доступа к ним, либо делаются вообще невидимыми.
Первое достигается за счет переустановки свойства опции Enabled в значени False, а второе - за счет присвоения свойству Visible тоже значения
False. Но это делается не "в лоб". Следует разработать механизм авторизации для доступа к меню,
который станет по регистрационным данным пользователя открывать одни опции, делать невидимыми другие и недоступными третьи.
На рисунке 4 показаны три главных опции меню, из которых вторая сделана недоступной, а третья невидимой.


Рис.4. Закрытие опций меню (режим проектирования)


Рис.5. Закрытие опций меню (режим выполнения)

   
На следующем шаге мы рассмотрим некоторые свойства опций MenuStrip.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий