窗体未激活时的Keydown事件

时间:2011-07-14 02:38:44

标签: c# winforms desktop-application

如何捕获非活动表单的Keydown事件?

我找到了对ProcessKeyDown的引用,但我找不到任何帮助。

5 个答案:

答案 0 :(得分:2)

请将表单的KeyPreview设置为true。首先选择表格并按f4键,它将打开属性窗口,它们是KeyPreview并将其设置为true。

答案 1 :(得分:0)

右键cilck表单和cilck属性,然后会有flash按钮,它是针对该对象的事件。找到他们的Keypress活动。只需doulbe点击与该事件对应的列。它将为按键创建事件。

有关文档和帮助,请查看this链接。

答案 2 :(得分:0)

Keypress事件仅发送给具有输入焦点的控件。您可以使用Control.HasFocus属性来确定您的Control是否具有焦点。使用Control.Focus()方法来控制焦点。

答案 3 :(得分:0)

您可以使用SetWindowsHookEx()设置低级键盘挂钩来收听按键事件。

答案 4 :(得分:0)

如果您要执行的操作是在操作系统中按下按键时触发程序中的某些代码,无论表单是否处于活动状态,那么您可以使用本文中介绍的方法:

Processing Global Mouse and Keyboard Hooks in C#

以下是使用该库通过按下小键盘上的数字键来模拟虚拟鼠标的程序的简单示例。 '1' - '4'和'6' - '9'是方向键,左键单击'5',双击'0'。

Program.cs

Form1.cs

观察我没有调用Application.Run();使用新的Form1()参数,以便应用程序可以运行但在屏幕上不可见。要结束程序,您必须按 CTRL + SHIFT + ESC ,转到“处理”页面并手动结束该过程。