4

我制作了一种检测何时按下键的方法,但它不起作用!这是我的代码

void KeyDetect(object sender, KeyEventArgs e)
{ 
    if (e.KeyCode == Keys.W && firstload == true)
    {
        MessageBox.Show("Good, now move to that box over to your left");
        firstload = false;
    }
}

我也尝试制作一个keyeventhandler,但是它说“无法分配给键检测,因为它是一个方法组”

public Gwindow()
{
    this.KeyDetect += new KeyEventHandler(KeyDetect);
    InitializeComponent();    
}
4

5 回答 5

9

像这样使用按键事件:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyCode == Keys.F1 && e.Alt)
    {
        //do something
    }
}
于 2012-10-19T19:25:38.907 回答
3

1)转到表单的属性

2) 查找“Misc”部分并确保“KeyPreview”设置为“True”

3) 转到表单的事件

4)查找“Key”部分并双击“KeyDown”以生成处理按键事件的函数

这是一些示例代码:

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        Console.WriteLine("You pressed " + e.KeyCode);
        if (e.KeyCode == Keys.D0 || e.KeyCode == Keys.NumPad0)
        {
            //Do Something if the 0 key is pressed (includes Num Pad 0)
        }
    }
于 2019-06-20T16:31:46.497 回答
1

您正在寻找this.KeyPress. 请参阅如何处理 MSDN 上的按键事件

于 2012-10-19T19:22:43.143 回答
1

尝试使用该KeyDown事件。

KeyDownMSDN中看到

于 2012-10-19T19:26:01.157 回答
1

做就是了

if (Input.GetKeyDown("/* KEYCODE HERE */"))
{
    /* CODE HERE */
}
于 2021-09-21T18:30:24.163 回答