源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-08-04 09:56 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C# WinForm中实现快捷键自定义设置实例
本文源码下载:[url=http://xiazai.jb51.net/201501/tools/cs-key-setting.rar]http://xiazai.jb51.net/201501/tools/cs-key-setting.rar[/url] 项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: [img]http://files.jb51.net/file_images/article/201501/201512395636849.png?201502395659[/img] 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。 最终的效果如下图所示: [img]http://files.jb51.net/file_images/article/201501/201512395711185.png?201502395720[/img] 核心代码如下所示:
[u]复制代码[/u] 代码如下:
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个核心函数。 如下所示:
[u]复制代码[/u] 代码如下:
private void textBox1_KeyDown(object sender, KeyEventArgs e) {     keyDown(sender, e); } private void textBox1_KeyUp(object sender, KeyEventArgs e) {     keyUp(sender, e); }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部