关闭esc的mdi孩子

时间:2013-02-21 06:19:07

标签: c# winforms

我需要使用 Esc 键关闭mdi child。我尝试使用keydownkeypress事件,但我甚至无法在按任意键时让表单响应这些事件。

4 个答案:

答案 0 :(得分:4)

试试这个

private void Form_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Escape)
    {
        this.Close();
    }
}

使用

Form.CancelButton Property - 获取或设置用户按下ESC键时单击的按钮控件。

答案 1 :(得分:3)

设置表单KeyPreview=True的属性 并使用Keydown Event

if (e.KeyCode == Keys.Escape){
   this.Close();
}

答案 2 :(得分:2)

如果您的MDI表单有Close按钮,那么您可以在表单中指定CancelButton属性,其ID为Close

因此,当您按 ESC 键时,它会调用Close按钮点击。

更多:CancelButton

答案 3 :(得分:2)

首先,您必须设置Form.KeyPreview = true,并且必须知道KeyUpKeyDown事件

之间的区别
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Escape)
    {
        this.Close();
    }
}

如果你想要KeyPress事件

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == 27)
    {
        this.Close();
    }
}