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

这篇文章主要介绍了对C# WinForm中实现快捷键自定义设置实例,本文实现了大多数软件如QQ、有道词典中的快捷键设置功能,即按下相应按键后显示在文本框中,需要的朋友可以参考下…

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

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

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

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

最终的效果如下图所示:

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

核心代码如下所示:

代码如下:

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);}

原创文章,作者:xingkupai,如若转载,请注明出处:http://xingkupai.com/office/13593.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注