C# 窗体响应快捷键

本文介绍了两种在C#窗体应用中响应快捷键的方法:1. 使用Form的KeyDown或KeyUp事件处理,注意使用KeyCode而不是KeyData,并设置form的keypreview为true。2. 重载ProcessCmdKey事件来捕获Ctrl+Enter快捷键,返回语句必不可少。通过键值和修饰符位确定按键状态。
摘要由CSDN通过智能技术生成

 两种方法
1. 在Form 的KeyDown 或KeyUp 事件
   写代码
            if (e.KeyCode == Keys.Enter && e.Control )
            {
                this.SocketSendButton_Click(Type.Missing, EventArgs.Empty);
            }
   注意要用e.KeyCode 而不是e.KeyData
   网上很多说第一种方法无用的就是把KeyCode 用成了KeyData
   然后 form 的keypreview 设true;

2.
        protected override bool ProcessCmdKey(ref Message msg,Keys keyData)
        {
            if (keyData ==( Keys.Enter | Keys.Control))
            {
                this.SocketSendButton_Click(Type.Missing, EventArgs.Empty);
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
  重载表单的processcmdkey事件
  return 语句是必要的



键由键值标识,键值是由键代码和一组修饰符共同组成的一个整数值。
键值的左边四个数字包含键代码(与   Windows   虚拟键代码一样)。
键值的右边四个数字包含   SHIFT、CONTROL   和   ALT   键的修饰符位。

同时按下n个键返回的值是这n个键的键值按位或后的值

值         键位

20000   ctrl
00041   A

20041   ctrl + A
因为按下组合键后,键盘反馈的键位信息就是按位或的数值


按下的修改键和shift 按位与 可确定是否按下了shift
((Control.ModifierKeys And Keys.Shift)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值