Сочетание трех клавиш не работает?

Всем привет, в программе хотел реализовать сочетание клавиш, но с тремя клавишами. С двумя все предельно просто, но неужели нельзя сделать для трех или это только с помощью WinAPI? Например ctrl+c+q.
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 2
@cicatrix
было бы большой ошибкой думать
Сочетание из трёх клавиш возможно, если две из них - клавиши-модификаторы (Ctrl, Shift или Alt).
Собственно, из двух клавиш возможно тоже только если одна из них - тот же модификатор.
Для остального делаются "аккорды" (как, например, в Visual Studio - сначала жмётся Ctrl + что-то, программа ждёт продолжения "аккорда", команда выполняется, когда нажимается следующая клавиша).
Ответ написан
mindtester
@mindtester
делаю странные вещи, обычно на C#
в тех же формах есть 2 типа событий:
- KeyPress - чаще всего используют его, но оно происходит при нажатии и последующем отпускании клавиши (не модификатора, "обычной")
- KeyDown/KeyUp - эти честно отрабатывают каждое нажатие и отпускание. можете копнуть в этом направлении. при нажатии нужной клавиши, установить свой внутренний флаг (кстати драйвера так и работают с модификаторами) при отпускании - снять флаг.. когда поймаете нажатие 3й клавиши (тут уже любым способом) - если и модификатор нажат, и ваш внутренний флаг установлен - это и есть нужная ситуация

но вообще не стоит слишком мудрить в этой области - в VS ctrl+k затем +c - это комментирование выделенного блока, но это последовательность, а не одновременная комбинация

ваша задумка может оказаться не устойчивой в реализации, и противоречить общим стереотипам поведения..

иногда ломать стереотипы полезно, а иногда нет

ps

для компонентов форм, в окне "свойства" студии, есть вкладка "события".. там же легко и обработчики создавать (кликом) и отменять их, и кнопкой F1 вызывать MSDN, для русской студии, существенная часть на русском (в отличии от поисковиков)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы