组合键回显

来源:互联网 发布:vb.net 批量注释 编辑:程序博客网 时间:2024/05/14 17:29

组合键回显,或者说按键回显,效果可以参考QQ的热键设置

键回显需要一个TextBox用于接收按键并回显按键文本,首先处理KeyDown事件

private void txtBoxKey_KeyDown(object sender, KeyEventArgs e){string echo = string.Empty;//处理按键,这里对修饰了默认回显switch (e.KeyCode){ case Keys.ShiftKey:     echo = "Shift";     break; case Keys.ControlKey:     echo = "Ctrl";     break; case Keys.Menu: //对应Alt键     echo = "Alt";     break; case Keys.Capital:     echo = "Caps";     break; case Keys.Return:     echo = "Enter";     break; default:     echo = e.KeyCode.ToString();     break;}//处理功能键组合,注意Modifiers与KeyCode对应的Keys.xx的不同if ((e.Modifiers & Keys.Shift) > 0 && e.KeyCode != Keys.ShiftKey) echo = "Shift + " + echo;if ((e.Modifiers & Keys.Alt) > 0 && e.KeyCode != Keys.Menu) echo = "Alt + " + echo;if ((e.Modifiers & Keys.Control) > 0 && e.KeyCode != Keys.ControlKey) echo = "Ctrl + " + echo;//回显txtBoxKey.Text = echo;}

 

KeyEventArgs的KeyCode成员用于标识按键代码,Modifiers成员用于标识指示按下的 Ctrl、Shift 和 Alt 键的组合。

Keys是一个.net枚举类型,需要注意的是Keys.Shift、Keys.Alt、Keys.Control是按键码,用于KeyEventArgs的KeyCode测试,而Keys.ShiftKey、Keys.Menu、Keys.ControlKey是标志位,用于KeyEventArgs的Modifiers测试

还需要处理KeyPress事件,跳过默认的按键盘处理

private void txtBoxKey_KeyPress(object sender, KeyPressEventArgs e){  //跳过默认的控件处理  e.Handled = true;}
原创粉丝点击