WinForm中快捷键与组合按键的设置方法

 更新时间:2020年6月25日 11:43  点击:1623
第一种方法。。代码复杂,操作简单的快捷键

新建一个空白窗体


每个窗体都有这样3个事件:KeyDown、KeyPress、KeyUp,KeyDown和KeyPress都是按键按下事件,但KeyDown用的是KeyCode跟键盘各个按键相对应,它对应Keys枚举,用起来比较方便;而KeyPress用的是KeyChar,这个就要找ASC II编码了,不方便。KeyUp是按键弹起事件,不常用,因此我们使用KeyDown事件来设置窗体的快捷键,双击该事件后的空白生成代码,首先我们设置单个按键,让它按下F11最大化,再次按下还原,在事件中加入如下代码:

复制代码 代码如下:

if (e.KeyCode == Keys.F11)
{
if (WindowState == FormWindowState.Maximized)
WindowState = FormWindowState.Normal;
else
WindowState = FormWindowState.Maximized;
}


若窗体的WindowState为Maximized则还原,否则最大化,运行下试试,很好用 :-)

下面在窗体中加入一个名为txtInput的TextBox,两个名为btnConfirm、btnExit的Button:



再次运行窗体,按下F11,不起作用了?这是怎么回事?

因为这时窗体运行后,焦点已不在窗体上,而在控件上了,我们要将KeyPreview设置为True,向窗体注册控件上产生的键盘事件,再次运行,问题解决了。

那么组合按键又怎么设置呢?例如要按下Alt和数字0,需要这样:

复制代码 代码如下:

if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.D0)
{
    MessageBox.Show("按下了Alt + 0");
}

使用Modifiers可设置组合键,键盘数字区按键的Keys枚举以D打头,而小键盘上的数字以NumPad打头。按下Ctrl与Shift组合键的方法与其类似,下面我们看看按下Ctrl + Alt + 数字0该怎样设置:

复制代码 代码如下:

if ((int)e.Modifiers == ((int)Keys.Control + (int)Keys.Alt) && e.KeyCode == Keys.D0)
{
    MessageBox.Show("按下了Control + Alt + 0");
}

将Ctrl和Alt的枚举转换为int型相加后与Modifiers对比,这样即可判断是否按下了该组合键。

那么 怎么触发按钮事件呢?

如按F1触发confirm按钮事件

复制代码 代码如下:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
               if (e.KeyCode == Keys.F1)
             {

                         / /如果还有keypress事件,不让此快捷键触发其事件可加一句代码

                      e.Handled = true;   //将Handled设置为true,指示已经处理过KeyPress事件
                      confirm1.PerformClick();////执行单击confirm1的动作
             }
}



另外的,与窗体的AcceptButton属性相关联的按钮,将与键盘上的Enter键对应;与窗体的CancelButton属性相关联的按钮,将与键盘上的Ecs键对应。

另外一种简单快捷键的方法

在设置Button的Text属性时,在一个英文字母的前面加上&(and符),例如将btnConfirm的Text属性设置为:&Confirm,当运行窗体,按下Alt + C时,就相当于按下该键。

[!--infotagslink--]

相关文章

  • intelliJ IDEA 多行选中相同内容的快捷键分享

    这篇文章主要介绍了intelliJ IDEA 多行选中相同内容的快捷键分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-06
  • C#实现快捷键的几种常用方法汇总

    这篇文章主要介绍了C#实现快捷键的几种常用方法,非常实用,需要的朋友可以参考下...2020-06-25
  • C# WinForm快捷键设置技巧

    这篇文章主要给大家介绍C# winform快捷键设置技巧,涉及到C winform快捷键相关知识,对C winform知识感兴趣的朋友可以参考下本篇文章...2020-06-25
  • R语言-使用快捷键快速注释的实现

    这篇文章主要介绍了R语言-使用快捷键快速注释的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • pycharm 多行批量缩进和反向缩进快捷键介绍

    这篇文章主要介绍了pycharm 多行批量缩进和反向缩进快捷键介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-16
  • Delphi编程常用快捷键大全

    这篇文章主要介绍了Delphi编程常用快捷键,对于提高Delphi编程的效率很有帮助,需要的朋友可以参考下...2020-06-30
  • VS2019使用快捷键将代码对齐的方法

    这篇文章主要介绍了VS2019使用快捷键将代码对齐的相关资料,非常不错对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 深入分析为Visual Assist设置快捷键的方法

    本篇文章是对为Visual Assist设置快捷键的方法进行了详细的分析介绍,需要的朋友参考下...2020-04-25
  • 积累Visual Studio 常用快捷键的动画演示

    在代码开发过程中,频繁的使用键盘、鼠标操作非常麻烦,影响程序的开发效率。如何操作能用键盘来操作,那就节省时间了。下面小编把我平时积累的有关visul studio 常用快捷键的动画演示分享给大家,仅供大家参考...2020-06-25
  • 超级详细实用的pycharm常用快捷键

    本文详细总结了Pycharm的常用快捷键,下文介绍使用方法和场景, 并不需要记忆这些快捷键, 你只需要知道有这些快捷键, 再需要用的时候查看一下, 用的多了自然也就记住了,需要的朋友可以参考下...2021-05-13
  • vs2010 vs2008 vs2005 快捷键大全

    本文搜集整理了一些实用快捷键:VS2005的隐藏快捷键;VS2010版快捷键;VS2008快捷键大全等等,需要了解的朋友可以参考下...2021-09-22
  • 在Winform和WPF中注册全局快捷键实现思路及代码

    如果注册快捷键,RegisterHotKey中的fsModifiers参数为0,即None选项,一些安全软件会警报,可能因为这样就可以全局监听键盘而造成安全问题,感兴趣的你可以参考下本文...2020-06-25
  • 19个必须知道的Visual Studio快捷键

    这篇文章主要为大家详细介绍了19个必须知道的Visual Studio快捷键,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • c#中设置快捷键

    最近找了一些资料,是讲在C#中设置快捷键运行方法或程序的 要设置快捷键必须使用user32.dll下面的两个方法。 BOOL RegisterHotKey(  HWND hWnd,  int id,  UINT fsModi...2020-06-25
  • VC6.0常用快捷键大全

    这篇文章主要介绍了VC6.0常用快捷键大全,非常实用,需要的朋友可以参考下...2020-04-25
  • 深入理解C#实现快捷键(系统热键)响应的方法

    本篇文章是对使用C#实现快捷键(系统热键)响应的方法进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • 详解IDEA的快捷键及智能提示

    这篇文章主要介绍了详解IDEA的快捷键及智能提示,文中有非常详细的快捷键及智能提示的说明,对正在使用IDEA的小伙伴们有很好的帮助,需要的朋友可以参考下...2021-05-08
  • IEDA的默认快捷键设置与Eclipse的常用快捷键的设置方法

    这篇文章主要介绍了IEDA的默认快捷键设置与Eclipse的常用快捷键的设置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-19
  • Jupyter notebook命令和编辑模式常用快捷键汇总

    这篇文章主要介绍了Jupyter notebook命令和编辑模式常用快捷键汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-18
  • pycharm 如何查看某一函数源码的快捷键

    这篇文章主要介绍了在pycharm中实现查看某一函数源码的快捷键,具有很好的参考价值,希望能给大家做个参考,如有错误或未考虑完全的地方,望不吝赐教...2021-05-13