心之镇

~宁以致远~
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#中KeyDown与KeyUp事件

Posted on 2009-07-17 13:20  心之镇  阅读(1838)  评论(0)    收藏  举报

      在键盘按下键然后释放的过程中有3个事件发生,分别为KeyDown事件、KeyPress事件和KeyUp事件。 KeyDown和KeyUp事件让应用程序捕捉用户在键盘上按下的特殊键或某些特定键甚至组合键,只有在想要取得按下键或特殊键的相关信息时,才用到KeyDown和KeyUp事件。下面对KeyDown和KeyUp事件分别进行介绍。

1.KeyDown事件

KeyDown事件在首次按下某个键时发生。

   示例   KeyDown事件的使用

本示例中,判断用户是否按下特殊键,如果是,则显示在窗体的标题栏上。

程序主要代码如下。

       private void textBox1_KeyDown(object sender, KeyEventArgs e)

        {

            string G_str_Mode = "";

            string G_str_text = e.KeyCode + ":" + e.Modifiers + ":" + e.KeyData + ":" + "(" + e.KeyValue + ")";

             if (e.Shift == true)

                G_str_Mode = "Shift 键被按下";

            if (e.Control == true)

                G_str_Mode = "Ctrl 键被按下";

            if (e.Alt == true)

                G_str_Mode = "Alt 键被按下";

            this.Text = G_str_text + G_str_Mode;

        }

注意:上面的代码中,KeyDown事件取得了一个KeyEventArgs对象e,并返回相关的按键信息,KeyEventArgs参数提供数个属性值,这些属性根据键盘上被按下的按键返回对应值。KeyEventArgs参数的属性值如表所示。

表   KeyEventArgs属性值

属性值

说明

Control

获取一个值,该值指示是否曾按下Ctrl键

KeyCode

获取KeyDown或KeyUp事件的键盘代码

KeyData

获取KeyDown或KeyUp事件的键数据

KeyData

获取KeyDown或KeyUp事件的键数据

KeyValue

获取KeyDown或KeyUp事件的键盘值

Modifiers

获取KeyDown或KeyUp事件的修饰符标志。这些标志指示按下的Ctrl、Shift和Alt键的组合

Shift

获取一个值,该值指示是否曾按下Shift键

2.Keyup事件

Keyup事件在释放键时发生。

   示例 Keyup事件的使用

本示例实现的是,当程序运行的时候,按完键盘后,自动设置窗体的大小。

程序主要代码如下。

private void frmKeyDownUP_KeyUp(object sender, KeyEventArgs e)

        {

            this.ClientSize = new System.Drawing.Size(800,100);

        }