对于一个WinForm窗体,要想在打开后按Enter键或者Esc键应用或者关闭,可以采取下面的方法:

第一种:此类窗体一般会有“确定”、“取消”、“关闭”等类似按钮,那么就可以在窗体的属性当中把AcceptButton设置为你想在按下回车键采取一样操作的按钮;设置CancelButton为按下ESC键所要实现的操作;此外可以把AcceptButton键的TabIndex设置为0,这样空格键可以实现和回车键一样的效果;

第二种:关闭窗体的情况,要是窗体不存在按钮,只是用红叉关闭窗体,那么可以放一个按钮,设置为隐藏,转为第一种方式;此外还可以重写一个方法,方法如下:(声明:该方法转自http://www.cnblogs.com/zhwl/archive/2013/06/06/3121515.html,非常感谢原作者)


//重写ProcessCmdKey的方法
                             
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
                             
        {
                             
            int WM_KEYDOWN = 256;
                             
            int WM_SYSKEYDOWN = 260;
                             
            if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)
                             
            {
                             
                switch (keyData)
                             
                {
                             
                    case Keys.Escape:
                             
                        this.Close();//esc关闭窗体
                             
                        break;
                             
                }
             }
                             
            return false;
                             
        }