C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
来源:互联网 发布:淘宝无法开店 编辑:程序博客网 时间:2024/05/22 03:20
1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加;
2. 添加KeyPress / KeyDown事件:
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 都不能捕获。
KeyPress事件:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar== '1')
{
button1.PerformClick();// 执行按钮“1”的操作
e.Handled = true;
}
}
KeyChar取值:
另外2个特殊ASCII码:回车=13,换行=10KeyDown事件: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; } }KeyCode取值(Java中应该也是一样的值):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_switch3. 如何获取键盘按钮的keyChar值(keyCode同理):private void Form1_KeyPress(object sender, KeyPressEventArgs e) { char Key_Char = e.KeyChar;//判斷按鍵的 Keychar MessageBox.Show(((int)(Key_Char)).ToString());//轉成整數顯示 }参考 http://hi.baidu.com/caixiexin/item/0baac4cab5da91d497445221 http://blog.csdn.NET/kingisking1/article/details/6091289 http://www.dotblogs.com.tw/chiajung/archive/2009/11/04/11416.aspx
- C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
- C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
- C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
- C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
- C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
- C# 关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
- KeyPress、KeyDown、KeyUp事件&&KeyCode、KeyChar、KeyData
- 键盘事件keydown,keypress,keyup区别
- 【c#】键盘事件(keypress keydown keyup)
- 键盘事件keydown、keypress、keyup
- 事件文本框键盘事件keydown,keypress,keyup区别
- C# KeyDown KeyPress KeyUp 处理相应的键盘事件
- 键盘事件keypress 和 keydown、keyup 的用法与区别
- 键盘事件keydown、keypress、keyup随笔整理总结(摘抄)
- c#键盘事件代码keychar
- EXT下keypress与keydown事件中的event.keyCode方法的区别
- 键盘事件keydown、keypress、keyup分析解答
- 键盘事件keydown,keypress,keyup区…
- 警告:不能读取 AppletViewer 的属性文件解决
- SQLserver学习day08 视图和索引
- NYoj 906杨辉三角(二维数组)
- 勾选问题
- [2016/12/6]计算两个大数的和
- C# 如何关联键盘按钮 (KeyChar/KeyCode值 KeyPress/KeyDown事件 区别)
- docker搭建 存储 运行 容器
- Timer——倒计时小玩具
- 拦截器
- Play Framework 2.5.x 测试环境搭建
- Logistic回归及梯度上升算法
- 前端面试题第一套
- logstash-input-jdbc实现mysql 与elasticsearch实时同步深入详解
- Leetcode 之 IslandPerimeter