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

1、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 都不能捕获。

2、KeyPress事件

Winform文本框只能输入数字和退格键和小数点:

private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar) && e.KeyChar != '.'){e.Handled = true;}
}
//或者
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{if (e.KeyChar != '\b' && !Char.IsDigit(e.KeyChar) && e.KeyChar != '.'){e.Handled = true;}
}

3、KeyChar取值:

另外2个特殊ASCII码:回车=13,换行=10,退格=’\b’ 或者 退格=8

4、KeyDown事件:

捕获单个按键:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{ Keys key = e.KeyCode; if (e.Control!=true)//如果没按Ctrl键
return; switch (key) { case Keys.NumPad0: //按下小键盘0以后 break; case Keys.NumPad1: //按下小键盘1以后 break; case Keys.S: //按下S键以后 break; case Keys.Up: //按下向下键以后 break; }
}

捕获组合键(以全选为例):

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{if (e.Control && e.KeyCode == Keys.A){(sender as TextBox).SelectAll();}
}

5、KeyCode取值:
keycode 8 = BackSpace BackSpace
keycode 9 = Tab Tab
keycode 12 = Clear
keycode 13 = Enter
keycode 16 = Shift_L
keycode 17 = Control_L
keycode 18 = Alt_L
keycode 19 = Pause
keycode 20 = Caps_Lock
keycode 27 = Escape Escape
keycode 32 = space space
keycode 33 = Prior
keycode 34 = Next
keycode 35 = End
keycode 36 = Home
keycode 37 = Left
keycode 38 = Up
keycode 39 = Right
keycode 40 = Down
keycode 41 = Select
keycode 42 = Print
keycode 43 = Execute
keycode 45 = Insert
keycode 46 = Delete
keycode 47 = Help
keycode 48 = 0 equal braceright
keycode 49 = 1 exclam onesuperior
keycode 50 = 2 quotedbl twosuperior
keycode 51 = 3 section threesuperior
keycode 52 = 4 dollar
keycode 53 = 5 percent
keycode 54 = 6 ampersand
keycode 55 = 7 slash braceleft
keycode 56 = 8 parenleft bracketleft
keycode 57 = 9 parenright bracketright
keycode 65 = a A
keycode 66 = b B
keycode 67 = c C
keycode 68 = d D
keycode 69 = e E EuroSign
keycode 70 = f F
keycode 71 = g G
keycode 72 = h H
keycode 73 = i I
keycode 74 = j J
keycode 75 = k K
keycode 76 = l L
keycode 77 = m M mu
keycode 78 = n N
keycode 79 = o O
keycode 80 = p P
keycode 81 = q Q at
keycode 82 = r R
keycode 83 = s S
keycode 84 = t T
keycode 85 = u U
keycode 86 = v V
keycode 87 = w W
keycode 88 = x X
keycode 89 = y Y
keycode 90 = z Z
keycode 96 = KP_0 KP_0
keycode 97 = KP_1 KP_1
keycode 98 = KP_2 KP_2
keycode 99 = KP_3 KP_3
keycode 100 = KP_4 KP_4
keycode 101 = KP_5 KP_5
keycode 102 = KP_6 KP_6
keycode 103 = KP_7 KP_7
keycode 104 = KP_8 KP_8
keycode 105 = KP_9 KP_9
keycode 106 = KP_Multiply KP_Multiply
keycode 107 = KP_Add KP_Add
keycode 108 = KP_Separator KP_Separator
keycode 109 = KP_Subtract KP_Subtract
keycode 110 = KP_Decimal KP_Decimal
keycode 111 = KP_Divide KP_Divide
keycode 112 = F1
keycode 113 = F2
keycode 114 = F3
keycode 115 = F4
keycode 116 = F5
keycode 117 = F6
keycode 118 = F7
keycode 119 = F8
keycode 120 = F9
keycode 121 = F10
keycode 122 = F11
keycode 123 = F12
keycode 124 = F13
keycode 125 = F14
keycode 126 = F15
keycode 127 = F16
keycode 128 = F17
keycode 129 = F18
keycode 130 = F19
keycode 131 = F20
keycode 132 = F21
keycode 133 = F22
keycode 134 = F23
keycode 135 = F24
keycode 136 = Num_Lock
keycode 137 = Scroll_Lock
keycode 187 = acute grave
keycode 188 = comma semicolon
keycode 189 = minus underscore
keycode 190 = period colon
keycode 192 = numbersign apostrophe
keycode 210 = plusminus hyphen macron
keycode 211 =
keycode 212 = copyright registered
keycode 213 = guillemotleft guillemotright
keycode 214 = masculine ordfeminine
keycode 215 = ae AE
keycode 216 = cent yen
keycode 217 = questiondown exclamdown
keycode 218 = onequarter onehalf threequarters
keycode 220 = less greater bar
keycode 221 = plus asterisk asciitilde
keycode 227 = multiply division
keycode 228 = acircumflex Acircumflex
keycode 229 = ecircumflex Ecircumflex
keycode 230 = icircumflex Icircumflex
keycode 231 = ocircumflex Ocircumflex
keycode 232 = ucircumflex Ucircumflex
keycode 233 = ntilde Ntilde
keycode 234 = yacute Yacute
keycode 235 = oslash Ooblique
keycode 236 = aring Aring
keycode 237 = ccedilla Ccedilla
keycode 238 = thorn THORN
keycode 239 = eth ETH
keycode 240 = diaeresis cedilla currency
keycode 241 = agrave Agrave atilde Atilde
keycode 242 = egrave Egrave
keycode 243 = igrave Igrave
keycode 244 = ograve Ograve otilde Otilde
keycode 245 = ugrave Ugrave
keycode 246 = adiaeresis Adiaeresis
keycode 247 = ediaeresis Ediaeresis
keycode 248 = idiaeresis Idiaeresis
keycode 249 = odiaeresis Odiaeresis
keycode 250 = udiaeresis Udiaeresis
keycode 251 = ssharp question backslash
keycode 252 = asciicircum degree
keycode 253 = 3 sterling
keycode 254 = Mode_switch

6、如何获取键盘按钮的keyChar值(keyCode同理)

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{  char Key_Char = e.KeyChar;//判断按键的 Keychar  MessageBox.Show(((int)(Key_Char)).ToString());//转成整数显示
}

[C#]C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)相关推荐

  1. C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)

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

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

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

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

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

  4. 蓝牙HID驱动:某键盘,Fn组合键,小概率无响应,普通Keyboard功能正常。

    蓝牙HID驱动:某键盘,Fn组合键,小概率无响应,普通Keyboard功能正常. 分析:同平台产品ABC,A搭配定制键盘,有该问题,B,C均无此问题. 初步判断为A搭配的键盘有问题.但看了HCI lo ...

  5. 键盘上什么组合键表示热启动计算机,什么是电脑热启动?电脑怎么热启动

    什么是电脑热启动? 电脑热启动又称键盘启动,在不断电状态下(即开机状态下)进行的电脑程序启动,就叫做电脑热启,也可以简化为热启动. 电脑怎么热启动? 电脑在DOS状态下运行时,即同时按下键盘上的Ctr ...

  6. 【fiveKeyPress】2秒内五次点击键盘任意键(或组合键)触发自定义事件(以Pause/Break键为例)

    看文章之前来一个热身吧[JavaScript键码表]身为一个键盘侠,不搞清楚键码映射表怎么可以???_你挚爱的强哥(http://www.shuzhiqiang.com)-CSDN博客keycode ...

  7. 原生JS【fiveKeyPress】2秒内五次点击键盘任意键(或组合键)触发自定义事件(以Pause/Break键为例)

    看文章之前来一个热身吧[JavaScript键码表]身为一个键盘侠,不搞清楚键码映射表怎么可以???_你挚爱的强哥(http://www.shuzhiqiang.com)-CSDN博客keycode ...

  8. Qt模拟键盘按键与组合键

    Tab键: QKeyEvent tabKey(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier);QCoreApplication::sendEvent(th ...

  9. js捕获键盘事件之keydown、keyup以及keypress

    js keyup.keypress和keydown事件都是有关于键盘的事件 当一个按键被pressed 或released在每一个现代浏览器中,都可能有三种客户端事件. keydown event k ...

  10. js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入

    设置快捷键 这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb). hotkeys on Github hotkeys预览 __ __ __ | ...

最新文章

  1. 引领潮流云电视机遇与挑战并现
  2. Flutter开发之实现沉浸式状态栏的效果
  3. 2020年第十八届西电程序设计竞赛网络预选赛之Problem A 失败的在线考试
  4. JAVA的静态方法的运算_java. util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作。...
  5. Linux神器strace的使用方法及实践
  6. Unity中UI界面颤抖解决方法
  7. 使用Eclipse统计自己项目程序代码量【实测可用】
  8. 解决百度文档复制时候的vip限制
  9. 布丰投针实验(如何将Geogebra动态文件嵌入博客中)
  10. 一个看漫画、看资讯、逛论坛、听歌的神器,务必吃下这颗安利!
  11. HTML5菜鸟教程在线编译特效,菜鸟教程在线工具
  12. 如何策划新闻营销的主题?
  13. 气液增压缸用于风扇叶铆钉铆接(产品试压)
  14. 算法竞赛入门【码蹄集进阶塔335题】(MT2001-2025)
  15. java 保存gif图片_java gif图片保存处理逻辑
  16. 影响 Redis 性能的 5 大方面的潜在因素
  17. JZOJ5952. 【NOIP2018模拟11.5A组】凯旋而归
  18. http缓存策略之强缓存与协商缓存
  19. mysql前段编写_HTML、CSS、JavaScript、PHP、 MySQL 的学习顺序是什么?
  20. HDM和IDVI都是数字显示器的接口

热门文章

  1. 二、T100库存杂收、杂发、报废管理篇
  2. idea打包jar包,运行后显示 没有主清单属性
  3. 【矩阵论】线性空间与线性变换(1)
  4. cisco 三层交换机与二层交换机级联 vlan trunk
  5. XMU毕业生总结写paper常用网站
  6. Java实现二维码制作
  7. Android7.0 拨号盘应用源码分析(一) 界面浅析
  8. 小程序调试技术详解(基于小猴小程序)
  9. 千村示范、万村整治 浙江
  10. U盘文件、文件夹不显示却能搜索到 显示U盘文件的解决办法