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,换行=10
KeyDown事件: