KeyDown事件不响应

KeyDown事件不响应的原因大体分为两种。

一、窗体的KeyPreview=true未设置,导致事件未注册。

二、方向键等部分按键由于系统本身有处理,不会响应keydown事件,这时候可以使用重写ProcessCmdKey来进行处理。不过记得多做测试,避免影响控件原有事件。

例如,处理了方向键,可能会影响光标移动等默认处理,处理了tab键可能会影响光标跳转等处理,总之使用的时候谨慎点。如果可以的话,尽量使用keyup等未加处理的事件。

以上。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.Up || keyData == Keys.Down || keyData == Keys.Left || keyData == Keys.Right)
                this.drawCtrl1.KeyMove(keyData);
            return base.ProcessCmdKey(ref msg, keyData);
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值