3

我需要mdi childEsc键关闭。我尝试使用keydownkeypress事件,但我什至无法让表单在按下任何键时响应这些事件。

4

4 回答 4

4

试试这个

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

利用

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

于 2013-02-21T06:21:18.550 回答
3

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

if (e.KeyCode == Keys.Escape){
   this.Close();
}
于 2013-02-21T06:27:47.587 回答
2

如果您的 MDI 表单有Close按钮,那么您可以在表单中分配具有按钮CancelButtonID 的属性Close

所以当你按下ESC键时,它会调用Close按钮点击。

更多:取消按钮

于 2013-02-21T06:26:02.753 回答
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();
    }
}
于 2013-02-21T06:29:39.187 回答