繁体   English   中英

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

[英]How can I accept keystrokes in a WinForms app?

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

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

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

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

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

    base.OnKeyUp(e);
}

您正在进行哪种应用程序? 窗口形式? WPF? 安慰? 在前两个中,有与按键相关的事件,在第三个中,可以使用Console.Read或ReadLine方法并测试返回值

您可能要在此处使用KeyPreview和OnKeyPreview,这取决于您在窗体上使用的控件。 有时,KeyDown和KeyUp将在您有机会亲自处理之前进行处理。

顺便说一句,对于Windows应用程序,使用'q'键而不带任何修饰符退出不是一个好主意,因为您可能在窗体上有接受输入的文本框,并且如果有人在文本框中输入“魁北克”,则您的应用程序将退出。

而且,如果您不想使用事件,则可以覆盖相同的虚拟方法,并为它们提供实现所需功能的实现。 但是,这里首选的方法是事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM