netlib.narod.ru | < Назад | Оглавление | Далее > |
Я уже упоминал клавиатурный интерфейс меню, связанный с подчеркнутыми буквами. Когда пользователь нажимает клавишу Alt, форма переходит в режим выбора меню. Нажатие клавиши F выводит подменю File, а нажатие О эквивалентно щелчку по пункту Open.
В Windows есть еще один интерфейс для работы меню, построенный на акселераторах (accelerator), или быстрых клавишах (shortcut) в терминологии Windows Forms. Быструю клавишу указывают значением из перечисления Shortcut. В предыдущем примере значение Shortcut.CtrlO указывает на то, что сочетание клавиш Ctrl+O является быстрой клавишей для вывода диалогового окна открытия файла. Когда быстрые клавиши применяются в пунктах меню, текст «Ctrl+O» автоматически вставляется в видимый пользователю текст пункта меню. Когда пользователь нажимает Ctrl+O напрямую вызывается обработчик события MenuFileOpenOnClick без видимого участия меню.
Shortcut — это перечисление 150 клавиатурных сочетаний, рекомендованных для меню. (Это четвертое по размеру перечисление в .NET Framework.) В наборе, приведенном в первой таблице, приведены функциональные клавиши, а также Insert, Delete и Backspace:
Перечисление Shortcut (выборочно)
F1 | ShiftF1 | CtrlF1 | CtrlShiftF1 | AltF1 |
F2 | ShiftF2 | CtrlF2 | CtrlShiftF2 | AltF2 |
F3 | ShiftF3 | CtrlF3 | CtrlShiftF3 | AltF3 |
F4 | ShiftF4 | CtrlF4 | CtrlShiftF4 | AltF4 |
F5 | ShiftF5 | CtrlF5 | CtrlShiftF5 | AltF5 |
F6 | ShiftF6 | CtrlF6 | CtrlShiftF6 | AltF6 |
F7 | ShiftF7 | CtrlF7 | CtrlShiftF7 | AltF7 |
F8 | ShiftF8 | CtrlF8 | CtrlShiftF8 | AltF8 |
F9 | ShiftF9 | CtrlF9 | CtrlShiftF9 | AltF9 |
F10 | ShiftF10 | CtrlF10 | CtrlShiftF10 | AltF10 |
F11 | ShiftF11 | CtrlF11 | CtrlShiftF11 | AltF11 |
F12 | ShiftF12 | CtrlF12 | CtrlShiftF12 | AltF12 |
Ins | ShiftIns | CtrlIns | ||
Del | ShiftDel | CtrlDel | ||
None | AltBksp | |||
Значение по умолчанию Shortcut.None. В следующей таблице приведены сочетания всех букв с клавишами Shift и Ctrl:
Перечисление Shortcut (выборочно)
CtrlA | CtrlN | CtrlShiftA | CtrlShiftN |
CtrlB | CtrlO | CtrlShiftB | CtrlShiftO |
CtrlC | CtrlP | CtrlShiftC | CtrlShiftP |
CtrlD | CtrlQ | CtrlShiftD | CtrlShiftQ |
CtrlE | CtrlR | CtrlShiftE | CtrlShiftR |
CtrlF | CtrlS | CtrlShiftF | CtrlShiftS |
CtrlG | CtrlT | CtrlShiftG | CtrlShiftT |
CtrlH | CtrlU | CtrlShiftH | CtrlShiftU |
CtrlI | CtrlV | CtrlShiftI | CtrlShiftV |
CtrlJ | CtrlW | CtrlShiftJ | CtrlShiftW |
CtrlK | CtrlX | CtrlShiftK | CtrlShiftX |
CtrlL | CtrlY | CtrlShiftL | CtrlShiftY |
CtrlM | CtrlZ | CtrlShiftM | CtrlShiftZ |
Значения этих членов перечисления эквивалентны значениям перечисления Keys (см. главу 6) из свойства KeyData класса KeyEventArgs. Ниже перечислены сочетания цифровых клавиш с клавишами Ctrl и Alt:
Перечисление Shortcut (выборочно)
Ctrl0 | CtrlShift0 | Alt0 |
Ctrl1 | CtrlShift1 | Alt1 |
Ctrl2 | CtrlShift2 | Alt2 |
Ctrl3 | CtrlShift3 | Alt3 |
Ctrl4 | CtrlShift4 | Alt4 |
Ctrl5 | CtrlShift5 | Alt5 |
Ctrl6 | CtrlShift6 | Alt6 |
Ctrl7 | CtrlShift7 | Alt7 |
Ctrl8 | CtrlShift8 | Alt8 |
Ctrl9 | CtrlShift9 | Alt9 |
Использовать в качестве быстрых клавиш меню значения, не определенные в перечислении Shortcut, нельзя.
В Win32-программировании клавиши-акселераторы можно использовать не только для быстрого вызова пунктов меню. Но в программе Windows Forms быстрые клавиши служат только для вызова пунктов меню. Быструю клавишу, не связанную с пунктом меню, можно определить, связав сначала пункт меню с этой клавишей, затем включив этот пункт в свое меню и установив свойство Visible пункта меню в false. Пункт не будет выводиться, но быстрая клавиша будет работать.
netlib.narod.ru | < Назад | Оглавление | Далее > |