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发电子邮件
Oct 09 PHP
PHP+DBM的同学录程序(5)
Oct 09 PHP
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
php中的登陆login
Jan 18 PHP
检测png图片是否完整的php代码
Sep 06 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
php编译安装php-amq扩展简明教程
Jun 25 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
Dec 02 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
php self,$this,const,static,-&amp;gt;的使用
2009/10/22 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
jquery tab插件制作实现代码
2010/06/22 Javascript
jquery插件之easing使用
2010/08/19 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
浅述python中argsort()函数的实例用法
2017/03/30 Python
Python排序算法实例代码
2017/08/10 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
师范毕业生自荐信
2013/10/17 职场文书
办公室内勤岗位职责范本
2013/12/09 职场文书
生物技术专业求职信
2014/06/10 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
志愿者事迹材料
2014/12/26 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
python blinker 信号库
2022/05/04 Python
table不让td文字溢出操作方法
2022/12/24 HTML / CSS