C# 中KeyChar和KeyValue的区别

一、三个键盘触发事件

KeyDown:     在控件有焦点的情况下按下键时发生。

(用到的是 KeyChar

KeyPress:     在控件有焦点的情况下按住键时发生。

(用到的是 KeyCode 和 KeyValue

KeyUp:          在控件有焦点的情况下释放键时发生。

(用到的是 KeyCode 和 KeyValue

触发顺序为:KeyDown-->KeyPress-->KeyUp

二、KeyPress 和KeyDown 、KeyPress之间的区别:
    1).KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符。
        KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)
    2).KeyPress 只能捕获单个字符。
        KeyDown 和KeyUp 可以捕获组合键
    3).KeyPress 可以捕获单个字符的大小写
    4).KeyDown和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写
    5).KeyPress 不区分小键盘和主键盘的数字字符
        KeyDown 和KeyUp 区分小键盘和主键盘的数字字符
    6).其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。

三、KeyData、KeyCode、KeyValue和KeyChar的区别

KeyCode:键,如Enter就会用到 KeyCode=Keys.Enter

KeyValue:值,如Enter就会用到 KeyValue=13

KeyChar:获取键盘的ASCII码值(查找ASCII表即可)

KeyData:

3.1 KeyCode、KeyValue区别

表1:字母和主键盘上的数字

表2:右侧数字键盘,F1按键

 

表3:控制键键码值(keyCode)

 

3.2 KeyCode、KeyChar区别

KeyChar是在keyPressEvent里面获得的char类型返回值,
KeyValue取得KeyDown 或KeyUp事件的键盘值,返回的整形。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值