Захват события комбинации клавиш в приложении Windows Forms - PullRequest
12 голосов
/ 17 июня 2010

Когда пользователь нажимает клавиши Shift + UP , я хочу, чтобы моя форма отвечала, вызывая окно сообщения.

Как мне это сделать в Windows Forms?

Ответы [ 2 ]

18 голосов
/ 17 июня 2010

Обработайте событие KeyDown и получите что-то вроде:

if (e.Modifiers == Keys.Shift && e.KeyCode == Keys.Up)
{
    MessageBox.Show("My message");
}

Обработчик событий должен быть в главной форме, и вам необходимо установить для свойства KeyPreview значение true. Это можно сделать в режиме конструктора из диалога свойств.

4 голосов
/ 10 ноября 2015

Если вы хотите использовать несколько модификаторов, KeyEventArgs также имеет логические значения, указывающие, нажаты ли клавиши CTRL, ALT или SHIFT.

Пример:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control && e.Alt && e.Shift && e.KeyCode == Keys.F12)
        MessageBox.Show("My message");
}

В этом примере окно сообщения отображается, если одновременно нажаты клавиши CTRL, ALT, SHIFT и F12.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...