C# WinForm中实现快捷键自定义设置实例
2015-01-23 00:00
776 查看
本文源码下载:http://xiazai.jb51.net/201501/tools/cs-key-setting.rar
项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示:
当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。
最终的效果如下图所示:
核心代码如下所示:
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个核心函数。
如下所示:
项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示:
当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。
最终的效果如下图所示:
核心代码如下所示:
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); }
相关文章推荐
- C#:实现快捷键自定义设置(转)
- C#:实现快捷键自定义设置
- C#实现Winform自定义半透明遮罩层
- [转]C#设置WinForm快捷键
- C#实现WinForm传值实例解析
- 解决C# winForm自定义鼠标样式的两种实现方法详解
- C# winform 无API函数实现系统快捷键
- C# Winform 实现自定义半透明loading加载遮罩层
- C#实现自定义FTP操作封装类实例
- C#设置WinForm快捷键
- C#设置WinForm快捷键(
- C# winform自定义Label控件使其能设置行距
- c#+Winform实现自定义的“复制、粘贴”右键快捷菜单,多个控件共享使用一个右键菜单
- C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面
- c# Winform 如何实现程序只能同时运行一个实例
- C# WinForm中Panel实现用鼠标操作滚动条的实例方法
- c# winform 打包部署 自定义界面 或设置开机启动
- C#实现Winform自定义半透明遮罩层
- C#实现自定义Dictionary类实例