-3

为什么这在 VS 2010 中不起作用?单击后,我在表单中按“a”,但没有任何反应。

private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyData == Keys.A)
        {
            MessageBox.Show("A");
        }
    }
4

4 回答 4

1

在相关表单上使用 KeyPreview:

public Form1()
{
    InitializeComponent();
    this.KeyPreview = true;
}
于 2012-10-17T17:18:56.830 回答
0

当您按下该键时,您的表单可能没有焦点。

获取或设置一个值,该值指示在将事件传递给具有焦点的控件之前窗体是否将接收键事件。

this.KeyPreview = true;
于 2012-08-30T21:56:13.863 回答
0

你搞好了没

KeyPreview = true;

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.keypreview(v=vs.100).aspx

于 2012-08-30T21:56:39.897 回答
0

是否分配了 KeyEventHandler?

KeyDown += Form1_KeyDown;
于 2013-06-27T15:56:23.047 回答