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# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)相关推荐

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

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

  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. mysql主键索引和普通索引之间的区别

    索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.MySQL提供多种索引类型供选择:普通索引 .唯一性索引.主键索引 .全文索引等等.下面本篇文章就来给大家介绍一下主键索 ...

  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 ...

最新文章

  1. Windows Server 2008中部署AD
  2. mysql5.7中使用group by报错
  3. C++ 简单的 Tcp 实现[socket] 服务器端与客户端通信
  4. unity 是厘米还是米_身高差45厘米! 这对重庆小情侣拍短视频晒幸福火了
  5. Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)
  6. mysql char varchar 性能_Mysql小细节:varchar与char在性能上的特点
  7. mysql浅拷贝_深拷贝与浅拷贝
  8. Android 起调系统功能,打开系统浏览器,拨打电话,发送短信,手机震动,跳转到设置通知开关页面
  9. 01 | 研发工程师想提升面试竞争力,该具备这三个技术认知
  10. 基于Ghost框架搭建Blog
  11. 《21天学通C语言(第7版)》一导读
  12. linux卸载apache服务器,centos 7 安装卸载apache(httpd)服务的详细步骤
  13. ORBSLAM3 的改进
  14. 【华为机试真题 Python实现】平安果
  15. 公有云上应该怎么做容灾?
  16. 从零开始写一个Jison解析器(6/10):解析,而不是定义语法
  17. 计算机电缆线对成缆系数,电线电缆的成缆系数是什么含义?
  18. pycharm的 crtl + r 使用正则表达式进行 request-header格式更改
  19. matlab中filtfilt函数解析
  20. 双引擎强悍!QQ电脑管家4.6 Beta1实测

热门文章

  1. 微服务网关:SpringCloud Gateway保姆级入门教程
  2. 裴蜀定理(贝祖定理) 证明与应用
  3. 8名清华北大研究生不出国,街道办事处上班!难道公务员比互联网还卷?
  4. DTRO垃圾渗滤液处理设备技术要点详解
  5. 工业螺旋齿轮行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  6. 众安保险今日正式招股,保险如何结合科技打造新经济?
  7. 英文歌曲:A place nearby (天堂若比邻)
  8. 测试测试测试测试测试测试
  9. Python学习:Python分析钉钉评论(一)爬取数据
  10. 让线程按顺序执行8种方法(转载)