Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Windows窗体应用程序热键-按键关闭事件不起作用_C#_.net_Winforms_Hotkeys - Fatal编程技术网

C#Windows窗体应用程序热键-按键关闭事件不起作用

C#Windows窗体应用程序热键-按键关闭事件不起作用,c#,.net,winforms,hotkeys,C#,.net,Winforms,Hotkeys,我读了很多关于为Windows窗体应用程序制作热键的问题,并尝试了很多人说它有效的代码,但对我来说,不知何故没有 代码: 如果要为窗体创建全局热键管理器,使其可用于该窗体中的所有控件,则需要重写捕获所有控件的所有键的form.ProcessCmdKey()方法,不要使用仅在背景聚焦时有效且仅在ActiveControl为null时发生的表单键关闭事件: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {

我读了很多关于为Windows窗体应用程序制作热键的问题,并尝试了很多人说它有效的代码,但对我来说,不知何故没有

代码:


如果要为窗体创建全局热键管理器,使其可用于该窗体中的所有控件,则需要重写捕获所有控件的所有键的
form.ProcessCmdKey()
方法,不要使用仅在背景聚焦时有效且仅在
ActiveControl
null
时发生的表单键关闭事件:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
  switch ( keyData )
  {
    case Keys.Control | Keys.S:
      timer1.Stop();
      return true;
  }
  return base.ProcessCmdKey(ref msg, keyData);
}
因此,您可以捕获所需的任意组合键,并在处理后返回true

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
  switch ( keyData )
  {
    case Keys.Control | Keys.S:
      timer1.Stop();
      return true;
  }
  return base.ProcessCmdKey(ref msg, keyData);
}