我如何接受WinForms应用程序中的击键?

时间:2011-02-08 10:57:53

标签: c# .net winforms keyevent

我如何接受击键?例如,如果用户按 q ,我想退出应用程序。

我该怎么做呢?我正在使用WinForms。

3 个答案:

答案 0 :(得分:2)

如果您使用的是WinForms,请使用KeyDownKeyUp个事件。

例如,只需将以下代码放入表单类中即可覆盖OnKeyUp事件,并在用户按下 q 键时关闭:

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

    base.OnKeyUp(e);
}

答案 1 :(得分:1)

您正在制作什么样的应用程序? 窗体? WPF?安慰?  在前两个中有与按键相关的事件,在第三个中,您可以使用Console.Read或ReadLine方法并测试返回值

答案 2 :(得分:0)

您可能希望在此处使用KeyPreview和OnKeyPreview,具体取决于您在表单上使用的控件。有时,KeyDown和KeyUp将在你有机会自己处理之前得到处理。

BTW,对于Windows应用程序,使用“q”键而不使用任何修饰符退出并不是一个好主意,因为您可能在表单上有接受输入的文本框,如果有人写“魁北克”,您的应用程序将退出进入文本框。

如果您不想使用事件,那么OVERRIDE相同的虚拟方法并为它们提供可以执行您想要的实现。但同样,这里的首选方法是事件。