如何在Windows窗体应用程序中实现键盘按键

cha*_*ara 2 .net c# io winforms

我想在 ac# windows 窗体应用程序中实现键盘按钮按下命令。假设如果达到某个值,我想使用 Windows 窗体应用程序按下“L”键。这可能吗?怎么做 ?

Moh*_*ava 6

这可能对你有用

但是,更好的方法可能是将表单的KeyPreview属性设置为true,然后将代码放入表单的keyDown事件中(并设置 e.Handled = true ,以防止按键事件传递给任何具有焦点的控件)。

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.L)
     {
        //Do here
     }
}
Run Code Online (Sandbox Code Playgroud)

您还想查看MSDN:在表单级别处理键盘输入,其中说明了 Windows 窗体提供了在消息到达控件之前在表单级别处理键盘消息的能力。

编辑

WM_KEYDOWN:当按下非系统键时,此消息将发布到具有键盘焦点的窗口。非系统键是在未按下 ALT 键时按下的键。

SendKeys:使用 SendKeys 将击键和击键组合发送到活动应用程序。该类无法实例化。要将击键发送到班级并立即继续程序流程,请使用发送。要等待由击键启动的任何进程,请使用 SendWait。

所以当您从任何设备接收信号时

System.Windows.Forms.SendKeys.Send("S");
Run Code Online (Sandbox Code Playgroud)

并按 keyDown

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.S)
     {
        //Shooting Code
     }
     else if (e.KeyCode == Keys.L)
     {
        //Some Other Code
     }
}
Run Code Online (Sandbox Code Playgroud)

除此之外,在 C# 中以编程方式生成按键事件?还将给您一个执行任务的想法