c# - 在窗体上任意位置按键

标签 c# winforms keydown

无论焦点在哪里(只要他们正在使用应用程序),我如何确定用户按下了什么键?

例如,他们按下“CTRL + Q”(退出),程序无论如何都会退出。

通常我必须转到 KeyDown 的表单事件,并在那里设置该条件。但是,如果表单没有焦点怎么办?然后 CTRL + Q 将不起作用。

如何在 Windows 窗体应用程序中执行此操作?我确信这很简单,但找不到方法。

最佳答案

您的问题不清楚 - 但考虑到这句话:

How can I determine what key user pressed, no matter where is the focus (as long as they are using the application)?

我假设您不是在寻找系统全局热键,而是应用程序全局热键。

如果你只有一种形式,你只需要设置KeyPreview将表单的属性设置为 true。

这具有首先将所有按键事件(KeyDown 等)发送到表单的效果,即使表单上的控件具有焦点也是如此。

然后您可以简单地实现您在问题中提到的 KeyDown 处理程序。

如果您有多个表单,那么您可能需要对每个表单都执行此操作。

关于c# - 在窗体上任意位置按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873673/

相关文章:

c# - 从串口读取数据

c# - 加载表单而不显示它

c# - 如何在文本框(WPF)中按 Control+Right 选择 2 个单词?

c# - Stylecop 配置文件在哪里?

c# - CodeDom : compile partial class

c# - 从字符串名称调用方法

C#:如何确定串口设备的可设置波特率?

jquery - jQuery keydown和mouseDown函数?

ios - 来自外部脚踏开关的 Cordova 应用程序按键事件在 iOS 上不起作用

c# - LINQ to Entities 中的临时表