KeyValue与KeyData与KeyCode区别(转)
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区别(转)的更多相关文章
- 一、集合框架(HashMap和Hashtable的区别)
一.HashMap和Hashtable 都实现了Map接口,都是以key-value形式保存数据. 区别一: HashMap可以存放null Hashtable不能存放null 区别二: HashMa ...
- DevExpress MVVM<1>
DevExpress MVVM 概念 模型 -定义数据和您的业务逻辑. 视图 -指定UI,包括绑定到ViewModel中的属性和命令的所有可视元素(按钮,标签,编辑器等). ViewModel-连接模 ...
- Devexpress Winform MVVM
归纳总结备忘 Devexpress Winform MVVM Practice 前言 MVVM Devexpress 正文 databindings及 UI Triggers Command 委托Co ...
- Mysql与PostgreSql数据库学习笔记---打酱油的日子
mysql 从最基础的数据引擎,到进程结构,都不能支持数据版本.导致其职能阻塞“并发”,不支持最基本的事务,innodb达不到基本事务要求,任何写数据,都导致整个表锁住.充其量只能算是一个玩具,或者说 ...
- .NET组件控件实例编程系列——5.DataGridView数值列和日期列
在使用DataGridView编辑数据的时候,编辑的单元格一般会显示为文本框,逻辑值和图片会自动显示对应类型的列.当然我们自己可以手工选择列的类型,例如ComboBox列.Button列.Link列. ...
- 纯js异步无刷新请求(只支持IE)
纯js异步无刷新请求 下载地址:http://pan.baidu.com/s/1slakL1F 所以因为非IE浏览器都禁止跨域请求,所以以只支持IE. <HTML> <!-- 乱码( ...
- 重写DataGridViewColumn
做个项目需要用到DataGridView,这个控件还是挺好用的,但是今天却发现无法实现自己想要的功能.主要是DataGridViewCheckBoxColumn这个列虽然是提供了复选框,但是却未能在复 ...
- Windows 窗体—— 键盘输入工作原理
方法 注释 PreFilterMessage 此方法在应用程序级截获排队的(也称为已发送的)Windows 消息. PreProcessMessage 此方法在 Windows 消息处理前在窗体和控件 ...
- Android软键盘调用及隐藏,以及获得点击软键盘输入的字母信息
在Android提供的EditText中单击的时候,会自动的弹出软键盘,其实对于软键盘的控制我们可以通过InputMethodManager这个类来实现.我们需要控制软键盘的方式就是两种一个是像Edi ...
随机推荐
- C# Qrcode生成二维码支持中文,带图片,带文字 2015-01-22 15:11 616人阅读 评论(1) 收藏
1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...
- java 访问 usb
java 要访问 usb 设备,通常要自己写c/c++代码,然后再用 java 访问这些组件,以达到控制usb设备的目的.但现在有一个开源组件 libusb 帮我们做好了访问usb设备的封装(包括wi ...
- 第一篇:SOUI是什么?
概述 用C++做产品最痛苦的是什么?肯定是做UI. SOUI的使命就是把痛苦的UI变化成快乐的UI. 什么?UI还能快乐?脑子进水了吗? 当你看完这个系统教程的时候相信你面对UI至少不会再痛苦.你可以 ...
- mathematica练习程序(获得股票数据)
从去年的11月开始,中国的股市就一直大涨,不知道这次能持续多长时间. 为了获得股票数据,我用matlab试了网上的一些方法,总是失败,所以就改用mathematica,一行代码就可以了. DateLi ...
- ios 多文件上传
/** * 上传多个文件 * * @param url 请求接口地址 * @param filedata 文件名称和数据(key:value) * @param btnName 上 ...
- AIDL
在介绍跨程序进程间通信AIDL前,先看一下本程序activity与某个服务是怎么绑定在一起进行交互的. 需求:服务有两个方法.分别是播放音乐与停止播放音乐.该程序的活动要访问这两个方法,在activi ...
- sql篇,动态合并数据
背景: 为何说是一雪前耻呢,想当年,我还小,我出去面试远洋,远远地看着浩哥在那里坐着,然后下班去吃饭,我和东辉却在那里静静地等待着第二轮的技术面试(结果是没有面上,一个是学历问题),终于一个小个子姐姐 ...
- 【转】Struts2解决表单重复提交问题
用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提 ...
- lr中定义字符串变量
需要注意的是数组必须定义为固定的长度,如:char chary[20]: 5C2o"Go!\gm nHH0 数组的最大长度为32064(32K),否则会出现“too many variab ...
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
主服务器上(注:应该是允许从机访问) GRANT REPLICATION SLAVE ON *.* to ‘rep1’@’192.168.10.131’ identified by ‘passwor ...