源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

解决C#中取消方向键对控件焦点控制的实现方法

  • 时间:2022-06-20 16:47 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:解决C#中取消方向键对控件焦点控制的实现方法
在C# winform 应用程序中,对于键盘响应事件,经常使用到"KeyPress"、“KeyUp”、"KeyDown"事件,可以处理某个按键的自定义处理事件。有时想定义方向键的自定义处理事件时,你可以发现,虽然自定义的处理事件发生了响应,但是也可以看到,按下方向键时,发现窗体上控件的焦点也发生了切换。而这种结果不是我们想要的,我们不想按下方向键时,控件的焦点发生切换,只想响应我们自定义的处理函数即可。下面的方法可以[b]取消方向键对控件焦点的控制[/b]:
[u]复制代码[/u] 代码如下:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)//取消方向键对控件的焦点的控件,用自己自定义的函数处理各个方向键的处理函数         {             switch (keyData)             {                 case Keys.Up:                     UpKey();                     return true;//不继续处理                 case Keys.Down:                     DownKey();                     return true;                 case Keys.Left:                     LeftKey();                     return true;                 case Keys.Right:                     RightKey();                     return true;             }             return base.ProcessCmdKey(ref msg, keyData);         }
UpKey()、DownKey()、LeftKey()、RightKey()分别是自定义的各个方向键的处理函数。在各个自定义处理函数之后使用return true 表示对按键的响应不继续处理,直接返回,这样就可以避免了方向键对控件焦点的控制。对于其他的按键,return base.ProcessCmdKey(ref msg, keyData);使用默认的处理。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部