Esc键事件未在winforms中被触发

Nag*_*agu 1 c# events winforms

我的Esc键事件似乎没有被触发.

我有两种形式.

在form1按钮单击事件中

Form2 frm2 = new Form2();
frm2.show();
Run Code Online (Sandbox Code Playgroud)

在表格2中,我有一个叫做的事件

    private void frm2_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Escape)
        this.Hide();

    }
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

Ryt*_*mis 5

如果焦点在子控件中,则需要进行设置

frm2.KeyPreview = true;
Run Code Online (Sandbox Code Playgroud)

处理表单事件处理程序中的键事件.

或者在表单的load事件处理程序或构造函数中:

this.KeyPreview = true;
Run Code Online (Sandbox Code Playgroud)