繁体   English   中英

Keydown事件未触发

[英]Keydown Event not firing

尝试在键盘上按下按钮时触发事件。 我将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");
}

尝试使用KeyCode:

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

还请记住,当您按下相应的按钮时, Form1必须具有焦点

将窗体的KeyPreview属性设置为true。

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

设置事件

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");
}

如果要处理所有keydown ,请不要忘记KeyPreview = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM