Задать вопрос

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

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

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

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

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

ps

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

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

Похожие вопросы