.NET中读取按键的信息

有三个事件可以用于读取按键:KeyPress、KeyDown和KeyUp。当用户按下一个键并松开时,这三个事件的发生顺序是:KeyDown-KeyPress-KeyUp。

KeyPress事件的参数e中有一个char类型的KeyChar属性,因而此事件常用于判断字符。

 1private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
 2        {
 3            if(e.KeyChar == char.Parse("A"))
 4            {
 5                MessageBox.Show("You pressed A");
 6            }

 7            if(e.KeyChar == (char)Keys.Enter)
 8            {
 9                MessageBox.Show("You pressed Enter");
10            }
如果要检查各种功能键,比如F1、光标键、Alt、Ctrl和Shift的组合键等,则需要使用KeyDown和KeyUp事件,按下某个键时,拥有焦点的控件发生KeyDown事件,松开时发生KeyUp事件。
1private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
2        {
3            if(e.Control == true && e.KeyCode == Keys.C)
4                MessageBox.Show("You pressed Control + C");
5        }
如果窗体的某个控件拥有焦点,则该控件会接收所有的键盘输入,但有时希望窗体能接收这些输入,这时要将窗体的KeyPreview属性设置为True。窗体先接收这些事件,处理完成后再分配给具有焦点的控件。如果想要仅在窗体级别处理键盘事件并且不允许控件接收键盘事件,请将窗体的事件处理方法中的KeyPressEventArgs.Handled属性设置为True。
1private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
2        {
3            if(e.Control == true && e.KeyCode == Keys.C)
4                MessageBox.Show("Form Handled");
5            e.Handled = true;
6        }

posted on 2006-07-21 14:00  莫相会  阅读(499)  评论(0编辑  收藏  举报