有时候我们可能会在编程的过程中需要知道键盘的某些按键的ASCII码或者Ctrl组合键码。比如,编程时只允许TextBox中输入数字,而不允许输入其它字符。在Winform,我们可以通过KeyPress事件来实现。但是,我们需要知道数字的ASCII码,甚至需要知道返回键的键码,因为当我们输入错误时,我们需要使用返回键清除错误内容,也许还需要知道Ctrl+C和Ctrl+V的ASCII码,从而实现复制粘贴。
下面子丰告诉大家一种获取ASCII码的方式,但是,获取Ctrl组合键的ASCII码的方式和某些键盘按键的ASCII码(Ctrl,Shift,Tab等)的方式不一样,所以接下来会分别介绍。博文中也会分别提供份一份子丰的程序,可以直接下载,用于获取ASCII码。
1. 使用TextBox的KeyPress获取数字、字母和Ctrl组合键的ASCII码
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
label1.Text = "TextBox " + e.KeyChar.ToString() + ":" + ((int)e.KeyChar).ToString();
e.Handled = true; //输入的内容在textbox中不显示
}
http://download.csdn.net/detail/softimite_zifeng/9688867
使用说明:运行程序,在TextBox获取焦点的情况下,按下按键,则label会显示按下的按键及其ASCII码
下面列出一些常用的ASCII码:
数字:0(ASCII码为48),1(49),2(50),3(51),4(52),5(53),6(54),7(55),8(56),9(57)
大写字母:A(65),B(66),C(67),D(68),E(69),F(70),G(71),H(72),I(73),J(74),K(75),L(76),……,Z(90)
小写字母:a(97),b(98),c(99),d(100),e(101),f(102),g(103),h(104),i(105),j(106),k(107),l(108),……,z(122)
Ctrl组合键:Ctrl+A(1),Ctrl+X(24),Ctrl+C(3),Ctrl+V(22)。其它的Ctrl组合键,大家可以自己去测一下。
返回键(8),Enter键(13)
2. 使用Form的KeyDown获取键盘上所有按键的ASCII码
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
label1.Text = "Form " + e.KeyCode.ToString() + ":" + ((int)e.KeyCode).ToString();
}
程序下载:点击打开链接
http://download.csdn.net/detail/softimite_zifeng/9688869
使用说明:运行程序,按下按键,则label会显示按下的按键及其ASCII码
下面列出一些键码供大家参考,有趣的是键盘上的两个数字区的键码不同。
Tab键(9),Shift键(16),Ctrl键(17),大小写切换键(20)等。这些按键使用第一种方式是无法测出来。
字母区上方的数字:0(48),1(49),……,9(57)
方向键右侧的数字:0(96),1(97),……,9(105)
在前面已经提到了该方法可以测键盘上所有的按键,比如,F区,方向键等,全部都能测。