KeyPress 和KeyDown 、KeyPress之间的区别
来源:互联网 发布:淘宝分期付款流程 编辑:程序博客网 时间:2024/05/21 15:02
(一)键事件按下列顺序发生:
KeyDown
KeyPress
KeyUp
KeyDown:在控件有焦点的情况下按下键时发生。
KeyPress:在控件有焦点的情况下按下键时发生。(下面会说和KeyDown 的区别)
KeyUp:在控件有焦点的情况下释放键时发生。
2.KeyPress 只能捕获单个字符KeyDown 和KeyUp 可以捕获组合键。
3.KeyPress 可以捕获单个字符的大小写
4.KeyDown和KeyUp 对于单个字符捕获的KeyValue都是一个值,也就是不能判断单个字符的大小写。
5.KeyPress 不区分小键盘和主键盘的数字字符。KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。
6.其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。
(五)系统组合键的判定
在使用键盘的时候,通常会使用到CTRL+SHIFT+ALT 类似的组合键功能。对于此,我们如何来判定?
通过KeyUp事件能够来处理(这里说明一下为什么不用KeyDown,因为在判定KeyDown的时候,CTRL、SHIFT和ALT属于一直按下状态,然后再加另外一个键是不能准确捕获组合键,所以使用KeyDown 是不能准确判断出的,要通过KeyUp事件来判定
1.KeyDown事件
KeyDown事件在首次按下某个键时发生。
示例 KeyDown事件的使用
本示例中,判断用户是否按下特殊键,如果是,则显示在窗体的标题栏上。
程序主要代码如下。
private void textBox1_KeyDown(object sender,KeyEventArgs e)
{
string G_str_Mode = "";
string G_str_text = e.KeyCode + ":" + e.Modifiers + ":" +e.KeyData + ":" + "(" + e.KeyValue + ")";
if (e.Shift == true)
G_str_Mode = "Shift 键被按下";
if (e.Control == true)
G_str_Mode = "Ctrl 键被按下";
if (e.Alt == true)
G_str_Mode = "Alt 键被按下";
this.Text = G_str_text + G_str_Mode;
}
注意:上面的代码中,KeyDown事件取得了一个KeyEventArgs对象e,并返回相关的按键信息,KeyEventArgs参数提供数个属性值,这些属性根据键盘上被按下的按键返回对应值。KeyEventArgs参数的属性值如表所示。
表
2.Keyup事件
Keyup事件在释放键时发生。
示例 Keyup事件的使用
本示例实现的是,当程序运行的时候,按完键盘后,自动设置窗体的大小。
程序主要代码如下。
private void frmKeyDownUP_KeyUp(object sender,KeyEventArgs e)
{
this.ClientSize = new System.Drawing.Size(800,100);
}
- KeyPress 和KeyDown 、KeyPress之间的区别
- KeyPress 和KeyDown 、KeyPress之间的区别
- KeyPress 和KeyDown 、KeyUp之间的区别
- KeyPress 和KeyDown 、KeyPress的区别
- KeyDown 、KeyPress之间的区别
- C# 中 KeyPress 、KeyDown 和KeyPress的区别
- C# 中 KeyPress 、KeyDown 和KeyPress的详细区别[转]
- keypress,keydown,keyup的区别
- keypress, keydown, keyup的区别
- KeyDown、KeyUp、KeyPress区别
- 转载关于KeyPress和KeyDown事件的区别和联系
- 关于KeyPress和KeyDown事件的区别和联系
- 关于KeyPress和KeyDown事件的区别和联系
- 关于KeyPress和KeyDown事件的区别和联系
- 转载关于KeyPress和KeyDown事件的区别和联系
- javascript keypress与keydown和keyup的区别
- KeyDown、KeyPress和KeyUp事件的区别与联系
- javascript KeyDown、KeyPress和KeyUp事件的区别与联系
- B - 最少拦截系统
- 107条Javascript的常用语句
- Linux 首次引入 nftables
- 团队协同工具
- 点滴:Java HashMap实现详解
- KeyPress 和KeyDown 、KeyPress之间的区别
- 如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS
- C深入学习 if else if
- Integer.toString(i)、new Integer(i).toString、""+i和String.valueOf(i)的性能测试
- Zookeeper学习资料收集与整理
- 开了新的blog
- CentOS安装设置vsftpd
- winfrom下listview的数据填充及闪屏解决
- 使用String.split拆分多个空格的问题