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

发布于 2024-10-16 13:03:48 字数 77 浏览 4 评论 0原文

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

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

How do I accept keystrokes? For example, I want to quit the application if the user presses q.

How do I go about doing this? I am using WinForms.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心房敞 2024-10-23 13:03:48

使用 KeyDown< /a> 或 KeyUp 事件(如果您使用的是 WinForms)。

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

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

    base.OnKeyUp(e);
}

Use the KeyDown or KeyUp events if you are using WinForms.

For example, just drop the following code into your form class to override the OnKeyUp event and close whenever the user presses the q key:

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

    base.OnKeyUp(e);
}
Smile简单爱 2024-10-23 13:03:48

您正在申请什么类型的申请?
窗口表格?世界和平基金会?安慰?
前两个是与按键相关的事件,第三个可以使用 Console.Read 或 ReadLine 方法并测试返回值

What kind of application you are making?
Window Forms? WPF? Console?
In the first two there are events related to key presses, in the third one, you can use Console.Read or ReadLine methods and test the return value

岛歌少女 2024-10-23 13:03:48

您可能需要在此处使用 KeyPreview 和 OnKeyPreview,具体取决于您在表单上使用的控件。有时,KeyDown 和 KeyUp 在您有机会自己处理之前就会被处理。

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

如果您不想使用事件,则重写相同的虚拟方法并为它们提供实现您想要的功能。但同样,这里的首选方法是使用事件。

You may want to use KeyPreview and OnKeyPreview here, depending on what controls are you using on the form. Sometimes, KeyDown and KeyUp will be handled before you get a chance to handle them yourself.

BTW, for windows apps, using 'q' key without any modifiers to quit isn't such a great idea, since you might have textboxes on the form that accept input, and your app will quit if someone writes 'quebec' into the textbox.

And if you don't want to use events, then OVERRIDE same virtual methods and provide implementation for them that will do what you want. But again, preferred method here is with events.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文