c# KeyValue与KeyData与KeyCode区别(转)

转载 2015年07月07日 09:13:43


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键是否是唯一被按下的修饰键。

相关文章推荐

C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)

1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加; 2. 添加KeyPress / KeyDown事件: KeyPress 和KeyDown...

C#KeyValue对应键盘

========= 一。 =========      for( int i=48; i      {       if( e.K...

c# keycode

•  keycode     8 = BackSpace BackSpace•  keycode     9 = Tab Tab•  keycode    12 = Clear•  keycode &...

键盘KeyCode值列表(转)

转自: 不抛弃 不放弃 keycode  keycode   0 = keycode   1 = keycode   2 = keycode   3 = keycode ...
  • wmqdn
  • wmqdn
  • 2012-07-03 16:46
  • 274

event.keycode值大全[转]

在文本框强制输入数字验证,身份证号验证时候使用... function GetInput() {//屏蔽非数字和非退格符             var k = event.keyCod...

【转】C#中string.empty “” 以及 null的区别

作者:佚名出处:IT专家网2010-03-01 13:00 本文介绍string.Empty,""和null三者的区别。     这是一个及其常见的问题,网上已经有关于这个问题的...

C#中virtual 方法和abstract方法的区别 (转)

在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别。二者都牵涉到在派生类中与override的配合使用。一、Virtual方法(虚方法)      vir...

C#中StreamWriter与BinaryWriter的区别兼谈编码(转)

参考: 1. 《C#高级编程》第六版 2.  文件流和数据流-C#程序设计教程   2010-7-11补充:   发现了一篇讲编码的深入而全面的好文章http://www...

【转】c#语言中 (int)、int.Parse()、int.TryParse、Convert.ToInt32的区别

以前经常为这几种数据类型转换方式而迷茫,这次为了彻底搞清它们之间的区别和优缺点,在网上查看了一些资料,并亲自验证了一下,在此写出来,一方面,为那些跟我有过相似经历的朋友们些许,另一方面,希望前辈们指导...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)