Как я могу принять нажатия клавиш в приложении WinForms? - PullRequest
0 голосов
/ 08 февраля 2011

Как мне принять нажатия клавиш?Например, я хочу выйти из приложения, если пользователь нажимает q .

Как мне это сделать?Я использую WinForms.

Ответы [ 3 ]

2 голосов
/ 08 февраля 2011

Используйте события KeyDown или KeyUp, если вы используете WinForms.

Например, просто поместите следующий код в класс формы, чтобы переопределить событие OnKeyUp и закрыть, когда пользователь нажимает клавишу q :

protected override void OnKeyUp(KeyEventArgs e)
{
    if (e.KeyCode == Keys.Q)
    {
        this.Close();
    }

    base.OnKeyUp(e);
}
1 голос
/ 08 февраля 2011

Какое приложение вы делаете? Оконные формы? WPF? Приставка? В первых двух есть события, связанные с нажатиями клавиш, в третьем вы можете использовать методы Console.Read или ReadLine и проверить возвращаемое значение

0 голосов
/ 08 февраля 2011

Вы можете использовать KeyPreview и OnKeyPreview здесь, в зависимости от того, какие элементы управления вы используете в форме. Иногда KeyDown и KeyUp обрабатываются, прежде чем вы получите возможность обрабатывать их самостоятельно.

Кстати, для приложений Windows использование клавиши «q» без каких-либо модификаторов для выхода - не такая уж хорошая идея, поскольку в форме могут быть текстовые поля, принимающие ввод, и ваше приложение закроется, если кто-то напишет «quebec» в текстовое поле.

А если вы не хотите использовать события, то ПЕРЕЗАГРУЗИТЕ те же виртуальные методы и предоставьте для них реализацию, которая будет делать то, что вы хотите. Но опять же, предпочтительный метод здесь с событиями.

...