C# WinForm中实现快捷键自定义设置实例


Posted in PHP onJanuary 23, 2015

本文源码下载:http://xiazai.3water.com/201501/tools/cs-key-setting.rar

项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示:

C# WinForm中实现快捷键自定义设置实例

当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。

最终的效果如下图所示:

C# WinForm中实现快捷键自定义设置实例

核心代码如下所示:

private void keyDown(object sender, KeyEventArgs e)

{

    StringBuilder keyValue = new StringBuilder();

    keyValue.Length = 0;

    keyValue.Append("");

    if (e.Modifiers != 0)

    {

        if (e.Control)

            keyValue.Append("Ctrl + ");

        if (e.Alt)

            keyValue.Append("Alt + ");

        if (e.Shift)

            keyValue.Append("Shift + ");

    }

    if ((e.KeyValue >= 33 && e.KeyValue <= 40) ||

        (e.KeyValue >= 65 && e.KeyValue <= 90) ||   //a-z/A-Z

        (e.KeyValue >= 112 && e.KeyValue <= 123))   //F1-F12

    {

        keyValue.Append(e.KeyCode);

    }

    else if ((e.KeyValue >= 48 && e.KeyValue <= 57))    //0-9

    {

        keyValue.Append(e.KeyCode.ToString().Substring(1));

    }

    this.ActiveControl.Text = "";

    //设置当前活动控件的文本内容

    this.ActiveControl.Text = keyValue.ToString();

}
private void keyUp(object sender, KeyEventArgs e)

{

    string str = this.ActiveControl.Text.TrimEnd();

    int len = str.Length;

    if (len >= 1 && str.Substring(str.Length - 1) == "+")

    {

        this.ActiveControl.Text = "";

    }

}

e.KeyValue和字符的对应关系

字符 e.KeyValue
a-z|A-Z 65-90
F1-F12 112-123
0-9 48-57
PageUp 33
PageDown 34
End 35
Home 36
左(←) 37
上( ↑ ) 38
右(→) 39
下( ↓ ) 40

接着,为textbox控件分别设置_KeyDown和_KeyUp事件,并在其中调用以上2个核心函数。

如下所示:

private void textBox1_KeyDown(object sender, KeyEventArgs e)

{

    keyDown(sender, e);

}
private void textBox1_KeyUp(object sender, KeyEventArgs e)

{

    keyUp(sender, e);

}

PHP 相关文章推荐
谈谈新手如何学习PHP
Dec 14 PHP
php中常用编辑器推荐
Jan 02 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
Dec 19 PHP
php数据库抽象层 PDO
May 07 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
php实现singleton()单例模式实例
Nov 06 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
Yii2框架dropDownList下拉菜单用法实例分析
Jul 18 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP架构及原理知识点详解
Dec 22 PHP
php如何实现数据库的备份和恢复
Nov 30 PHP
对PHP PDO的一些认识小结
Jan 23 #PHP
smarty模板引擎中自定义函数的方法
Jan 22 #PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 #PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 #PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 #PHP
smarty模板引擎从php中获取数据的方法
Jan 22 #PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 #PHP
You might like
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
Views rows style模板重写代码
2011/05/16 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
python使用cookielib库示例分享
2014/03/03 Python
Python的类实例属性访问规则探讨
2015/01/30 Python
低版本中Python除法运算小技巧
2015/04/05 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
工程造价与管理专业应届生求职信
2013/11/23 职场文书
预备党员党课思想汇报
2014/01/13 职场文书
写给老师的表扬信
2014/01/21 职场文书
校本教研工作制度
2014/01/22 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
交通处罚决定书
2015/06/24 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
JavaScript执行机制详细介绍
2021/12/06 Javascript