永发信息网

C#中KeyData,KeyCode,KeyValue和KeyChar的区别

答案:2  悬赏:60  手机版
解决时间 2021-01-29 09:55
  • 提问者网友:孤凫
  • 2021-01-28 14:58
C#中KeyData,KeyCode,KeyValue和KeyChar的区别
最佳答案
  • 五星知识达人网友:一袍清酒付
  • 2021-01-28 15:35
KeyCode最为常用,记录了键盘上按了哪个键,当使用组合键时如ctrl+a,其值是"A";
KeyData可以记录组合键,当使用组合键时如ctrl+a时,其值为"A,ctrl";
KeyValue则是KeyCode的数字值,当使用组合键时如ctrl+a时,其值为65(A),注意不是97(a);
注意:这三个属性对于字母键只记录其大写的值(不管你是否开启了caplock或是按下shift键),如果一定要区分到底是大小写,可以使用KeyChar来判断。
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键是否是唯一被按下的修饰键。
全部回答
  • 1楼网友:西风乍起
  • 2021-01-28 16:20
keycode最为常用,记录了键盘上按了哪个键,当使用组合键时如ctrl+a,其值是"a"; keydata可以记录组合键,当使用组合键时如ctrl+a时,其值为"a,ctrl"; keyvalue则是keycode的数字值,当使用组合键时如ctrl+a时,其值为65(a),注意不是97(a); 注意:这三个属性对于字母键只记录其大写的值(不管你是否开启了caplock或是按下shift键),如果一定要区分到底是大小写,可以使用keychar来判断。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯