如何准确判断按下的是组合键,只允许输入数字键等
2014-02-13 12:03
246 查看
不是所有的组合键winform都支持,winform目前只支持ctrl、alt、shift + 普通键形式的组合键,并且只有KeyDown和KeyUp事件才能获取到组合键信息并正常影响。代码如下:
第一种写法:
第二种写法:
如果是多个组合键e.Control,e.Alt,e.Shift 返回布尔值,分别代表这三个键是否被按下
由此可知,第一种写法也可以改为第二种写法的方式,微软只提供和支持e.Control,e.Alt,e.Shift 这三个功能键 + 一个普通键的组合方式。这三个键可以出现一个或同时出现多个,但普通键只能出现一个,否则无法正确判断。组合键的形式有如下几种:
Ctrl + 普通键
Alt + 普通键
Shift + 普通键
Ctrl + Alt + 普通键
Ctrl + Shift + 普通键
Alt + Shift + 普通键
Ctrl + Alt + Shift + 普通键
————————————————————————————————————————————————————————
如果是只允许输入数字键和退格键:
第一种写法:
private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.A) MessageBox.Show("yes"); }
第二种写法:
如果是多个组合键e.Control,e.Alt,e.Shift 返回布尔值,分别代表这三个键是否被按下
private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.Alt && e.KeyCode == Keys.B) MessageBox.Show("yes"); }
由此可知,第一种写法也可以改为第二种写法的方式,微软只提供和支持e.Control,e.Alt,e.Shift 这三个功能键 + 一个普通键的组合方式。这三个键可以出现一个或同时出现多个,但普通键只能出现一个,否则无法正确判断。组合键的形式有如下几种:
Ctrl + 普通键
Alt + 普通键
Shift + 普通键
Ctrl + Alt + 普通键
Ctrl + Shift + 普通键
Alt + Shift + 普通键
Ctrl + Alt + Shift + 普通键
————————————————————————————————————————————————————————
如果是只允许输入数字键和退格键:
if (!(Regex.IsMatch(e.KeyChar.ToString(), "^[0-9]$")||e.KeyChar=='\b')) { e.Handled = true; }
相关文章推荐
- 人脸识别
- Linux系统下安装ORACLE 11G
- href="#"是什么意思呢?
- 交换机知识--生成树协议
- 本地连接在XP下的各种应用技巧介绍
- SSH搭建步骤
- ejb的各种bean
- 怎样开发Chrome浏览器的插件
- java认证专员测试题(英文版) java basic (附答案)
- 多进程socket服务器防止僵尸进程 模型
- 2014-坚持
- 在spring的beans.xml文件中使用id和name的区别
- 关于maven
- mysql外键(Foreign Key)介绍和创建外键的方法
- We are social:2014年全球社会化媒体、数字和移动业务数据洞察
- tomcat开启gzip网页压缩的方法
- Objective-c 中 nil, Nil, NULL和NSNull的区别
- 游标(cursor )是什么?
- MySQL 简介
- LESS基础