Keydown事件没有解雇

时间:2014-09-30 12:18:47

标签: c# .net windows winforms

在键盘上按下按钮时尝试启动事件。我已将Form1属性设置为将KeyPreview设置为True。但是,它还没有解雇,我看不出什么是错的。

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Modifiers == Keys.A)
    MessageBox.Show("A pressed");
    else if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.F1)
    MessageBox.Show("Combination of ALt and F1 pressed");
}

3 个答案:

答案 0 :(得分:1)

尝试使用KeyCode:

if (e.KeyCode==Keys.A)
                MessageBox.Show("A pressed");
            ...

另请注意,按下相应按钮时,Form1必须具有焦点

答案 1 :(得分:0)

将表单的KeyPreview属性设置为true。

否则,子控件将首先捕获事件。

答案 2 :(得分:0)

设置活动

this.KeyDown += Form5_KeyDown;
this.KeyPreview = true;

事件

void Form5_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.A)
        MessageBox.Show("A pressed");
    else if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.F1)
        MessageBox.Show("Combination of ALt and F1 pressed");
}
如果你想处理所有KeyPreview = true

,请不要忘记keydown