如何在 WinForms 应用程序中接受击键?
我如何接受击键?例如,如果用户按 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
KeyDown
< /a> 或KeyUp
事件(如果您使用的是WinForms
)。例如,只需将以下代码放入表单类中即可覆盖
OnKeyUp
事件,并在用户按下 q 键时关闭:Use the
KeyDown
orKeyUp
events if you are usingWinForms
.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:您正在申请什么类型的申请?
窗口表格?世界和平基金会?安慰?
前两个是与按键相关的事件,第三个可以使用 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
您可能需要在此处使用 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.