有三个事件可以用于读取按键:KeyPress、KeyDown和KeyUp。当用户按下一个键并松开时,这三个事件的发生顺序是:KeyDown-KeyPress-KeyUp。
KeyPress事件的参数e中有一个char类型的KeyChar属性,因而此事件常用于判断字符。
1
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
2
}
如果要检查各种功能键,比如F1、光标键、Alt、Ctrl和Shift的组合键等,则需要使用KeyDown和KeyUp事件,按下某个键时,拥有焦点的控件发生KeyDown事件,松开时发生KeyUp事件。2
1
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
2
}
如果窗体的某个控件拥有焦点,则该控件会接收所有的键盘输入,但有时希望窗体能接收这些输入,这时要将窗体的KeyPreview属性设置为True。窗体先接收这些事件,处理完成后再分配给具有焦点的控件。如果想要仅在窗体级别处理键盘事件并且不允许控件接收键盘事件,请将窗体的事件处理方法中的KeyPressEventArgs.Handled属性设置为True。2
1
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
2
}
2