码迷,mamicode.com
首页 > 其他好文 > 详细

KeyValue与KeyData与KeyCode区别(转)

时间:2016-07-11 21:11:31      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

KeyValue与KeyData与KeyCode区别(转)

KeyPress事件
KeyPressEventArgs参数

Handled /是否处理过KeyPress事件
KeyChar //按下的键对应的字符

如果I,则keychar为i,如果shift+i,则keychar为I。
如果是Ctrl+I,或ALt+I,根本不会得到一个keypress事件,因为他们是特殊的键序列,并非通过KeyPress发送。
需要KeyDown

KeyDown
KeyEventArgs参数
   Alt 获取一个值,该值指示是否曾按下 Alt 键。
   Control 获取一个值,该值指示是否曾按下 Ctrl 键。
   Handled 获取或设置一个值,该值指示是否处理过此事件。
   KeyCode 获取 KeyDown 或 KeyUp 事件的键盘代码。
   KeyData 获取 KeyDown 或 KeyUp 事件的键数据。
   KeyValue 获取 KeyDown 或 KeyUp 事件的键盘值。
   Modifiers 获取 KeyDown 或 KeyUp 事件的修饰符标志。这些标志指示按下的 Ctrl、Shift 和 Alt 键的组合。
   Shift 获取一个值,该值指示是否曾按下 Shift 键。
SuppressKeyPress 获取或设置一个值,该值指示键事件是否应传递到基础控件。


如果同时按下了Ctrl+Shift+I
KeyData   Keys.Ctrl+Keys。Shift+Keys。I
KeyCode Keys。I
Modifiers Keys。Ctrl+Keys。Shift
Alt false
Ctrl true
Shift true
KeyValue 73
KeyChar 不可用

尽管我们处理了KeyDown来获得特殊的字符,但是有些特殊字符(比如箭头键)在默认的情况下并不传送给控件。为了启用他们,自定义控件可以重写来自基类的IsInputKey方法


如果想在键盘事件之外获悉修饰键的状态,可以通过Control类的静态属性ModifierKeys来访问这类信息。

void MyCon-Click(object sender,EventArgs e)
{
if(Control.ModifierKeys==Keys.Control)
{
}
}
检查在鼠标点击事件中,Ctrl键是否是唯一被按下的修饰键。

KeyValue与KeyData与KeyCode区别(转)

标签:

原文地址:http://www.cnblogs.com/candyzhmm/p/5661416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!