试图检测按键

时间:2012-10-19 19:20:23

标签: c# keypress

我制作了一个方法,可以检测按键何时被按下,但是它无效!继承我的代码

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 个答案:

答案 0 :(得分:5)

使用这样的按键事件:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyCode == Keys.F1 && e.Alt)
    {
        //do something
    }
}

答案 1 :(得分:1)

您正在寻找this.KeyPress。请参阅How to Handle Keypress Events on MSDN

答案 2 :(得分:1)

尝试使用KeyDown事件。

只需在MSDN

中查看KeyDown即可

答案 3 :(得分:0)

1)转到表单的属性

2)查找“其他”部分,并确保“ KeyPreview”设置为“真”

3)转到表单的事件

4)查找“按键”部分,然后双击“ 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)
        }
    }