C#键盘事件

1.KeyPressEventArgs类的主要属性(KeyPress事件的一个参数类型)  
(1)Handled属性:用来获取或设置一个值,该值指示是否处理过KeyPress事件。  
(2)KeyChar属性:用来获取按下的键对应的字符,通常是该键的ASCII码。  
2.KeyEventArgs类的主要属性(KeyUp和 KeyDown事件的一个参数)  
(1)Alt属性:用来获取一个值,该值指示是否曾按下Alt键。  
(2)Control属性:用来获取一个值,该值指示是否曾按下Ctrl键。  
(3)Shift属性:用来获取一个值,该值指示是否曾按下Shift键。  
(4)Handled属性:用来获取或设置一个值,该值指示是否处理过此事件。  
(5)KeyCode属性:以 Keys枚举型值返回键盘键的键码,该属性不包含修改键(Alt、Control和 Shift键)信息,用于测试指定的键盘键。  
(6)KeyData 属性:以 Keys 枚举类型值返回键盘键的键码,并包含修改键信息,用于判断关于按下键盘键的所有信息。  
(7)KeyValue属性:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键盘键的数字表示。    

所以设置KeyPress事件,不能用KeyChar读取 alt,ctrl之类的字符

所以博主最后还是改成了 KeyDown事件

C#键盘事件_第1张图片

当你按下 A ,或者数字1或Ctrl键 就会有相应的显示

比如

C#键盘事件_第2张图片

这是我输入 1 的效果图


附上代码

private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            
            int temp=e.KeyValue;
            if (temp == 'A')
            {
                A_label.Text = "A:YES";
            }
            else
            {
                A_label.Text = "A:NO";
            }
            if (temp == '1')
            {
                num1_label.Text = "数字1:YES";
            }
            else
            {
                num1_label.Text = "数字1:NO";
            }
            if (temp==17)
            {
                ctrl_label.Text = "Control:YES";
            }
            else
            {
                ctrl_label.Text = "Control:NO";
            }
            keycode_label.Text = "KeyCode:"+e.KeyCode;
            keydata_label.Text ="KeyData:"+e.KeyData;
            keyvalue_label.Text = "KeyValue:"+e.KeyValue;
             
        }


你可能感兴趣的:(C#winform控件)