C#键盘事件

本文介绍如何使用KeyPressEventArgs和KeyEventArgs类来捕获键盘输入事件,包括处理KeyPress事件以获取字符输入,以及通过KeyDown事件捕捉特殊键如Ctrl、Alt等的状态。通过示例代码展示了如何根据不同的键值显示相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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事件

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

比如

这是我输入 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;
             
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值