C#窗体及控件的快捷键
ShortcutKeyDisplay里的内容可以覆盖掉快捷键的内容.
================================================================================
把窗体的KeyPreview改成true
添加窗体的KeyDown事件。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.A)
{
button1.PerformClick();
}
}
另外e.modifers,e.KeyData,e.KeyValue,e.KeyChar也可以检查组合按键
if(e.KeyValue==112 )//F1键的keyvalue是112
if (e.KeyChar == (char)Keys.F2)
================================================================================
[DllImport("user32.dll")]
private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, Keys vk);
[DllImport("user32.dll")]
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
这是设置和取消热键的API
RegisterHotKey(this.Handle, 200, 0, Keys.F2); 第一个是本窗口的句柄,第二个随便写一个数,如果多个热键的话要写不同,作为热键的标记,
取消热键的时候带入这个数字就可以了
UnregisterHotKey(this.Handle, 200);