按ESC关闭当前窗口

来源:互联网 发布:网络倾听者收费? 编辑:程序博客网 时间:2024/06/04 19:40

在WinForm中经常会需要实现这样的功能:按ESC关闭当前窗口,或者按不同的键,实现不同的功能。


下文以实现按ESC关闭当前窗口为例:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)        {            /*                C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinUser.h中定义:                    #define WM_KEYFIRST                     0x0100                    #define WM_KEYDOWN                      0x0100                    #define WM_KEYUP                        0x0101                    #define WM_CHAR                         0x0102                    #define WM_DEADCHAR                     0x0103                    #define WM_SYSKEYDOWN                   0x0104                    #define WM_SYSKEYUP                     0x0105                    #define WM_SYSCHAR                      0x0106                    #define WM_SYSDEADCHAR                  0x0107            */            if (msg.Msg == 0x100 || msg.Msg == 0x104)                       // WM_KEYDOWN, WM_SYSKEYDOWN            {                if(keyData == Keys.Escape)                {                    this.Close();                                           // Esc关闭窗体                }            }            return false;        }


原创粉丝点击