C# WinForm中实现快捷键自定义设置实例,。C# WinForm中实现快捷键自定义设置实例, 本文源码下载:http://xiazai.jb51.net/201501/tools/cs-key-…
本文源码下载:http://xiazai.jb51.net/201501/tools/cs-key-setting.rar
项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示:
当我们相继按下 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 = 65 && e.KeyValue = 112 && 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);}
http://www.bkjia.com/PHPjc/946746.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/946746.htmlTechArticleC# WinForm 中实现快捷键自定义设置实例, 本文源码下载:http://xiazai.jb51.net/201501/tools/cs-key-setting.rar 项目开发过程中,需要实现类似有道词典…
原创文章,作者:xingkupai,如若转载,请注明出处:http://xingkupai.com/office/13918.html