【发布时间】:2011-07-14 02:38:44
【问题描述】:
如何捕获非活动表单的 Keydown 事件?
我找到了对 ProcessKeyDown 的引用,但我找不到任何帮助。
【问题讨论】:
标签: c# winforms desktop-application
如何捕获非活动表单的 Keydown 事件?
我找到了对 ProcessKeyDown 的引用,但我找不到任何帮助。
【问题讨论】:
标签: c# winforms desktop-application
请将表单的 KeyPreview 设置为 true。首先选择表单并按f4键,它将打开属性窗口,它们是KeyPreview并将其设置为true。
【讨论】:
在form和cilck属性上右键cilck,就会出现flash button,它是针对那个对象的事件。找到他们的 Keypress 事件。只需双击与该事件对应的列。它将为按键创建事件。
有关文档和帮助,请查看this 链接。
【讨论】:
按键事件仅发送到具有输入焦点的控件。您可以使用 Control.HasFocus 属性来确定您的 Control 是否具有焦点。使用 Control.Focus() 方法为您的控件提供焦点。
【讨论】:
您可以使用SetWindowsHookEx() 设置低级键盘挂钩来监听按键事件。
【讨论】:
如果您想做的是在操作系统中按下按键时触发程序中的一些代码,以了解表单是否处于活动状态,那么您可以使用本文中描述的方法:
Processing Global Mouse and Keyboard Hooks in C#
这是一个简单的程序示例,该程序使用该库通过按小键盘上的数字键来模拟虚拟鼠标。 '1'-'4'和'6'-'9'是方向键,'5'是左键,'0'是双击。
注意我没有调用 Application.Run();使用新的 Form1() 参数,以便应用程序可以运行但不会在屏幕上显示。要结束程序,您必须按 CTRL+SHIFT+ESC,转到进程页面并手动结束进程。
【讨论】: