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

 更新时间:2013年05月20日 09:28:38   作者:  
本篇文章是对C#中取消方向键对控件焦点控制的解决方法进行了详细的分析介绍,需要的朋友参考下
在C# winform 应用程序中,对于键盘响应事件,经常使用到"KeyPress"、“KeyUp”、"KeyDown"事件,可以处理某个按键的自定义处理事件。有时想定义方向键的自定义处理事件时,你可以发现,虽然自定义的处理事件发生了响应,但是也可以看到,按下方向键时,发现窗体上控件的焦点也发生了切换。而这种结果不是我们想要的,我们不想按下方向键时,控件的焦点发生切换,只想响应我们自定义的处理函数即可。下面的方法可以取消方向键对控件焦点的控制
复制代码 代码如下:

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);使用默认的处理。

相关文章

  • C# 基于NAudio实现对Wav音频文件剪切(限PCM格式)

    C# 基于NAudio实现对Wav音频文件剪切(限PCM格式)

    本文主要介绍了C#基于NAudio工具对Wav音频文件进行剪切,可以将一个音频文件剪切成多个音频文件(限PCM格式),感兴趣的小伙伴可以学习一下
    2021-11-11
  • 人脸认证源码faceIdentify详解

    人脸认证源码faceIdentify详解

    这篇文章主要为大家详细介绍了人脸认证源码faceIdentify的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的使用

    C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的使用

    这篇文章主要介绍了C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • C# Socket 发送&接收&返回 简单应用实例

    C# Socket 发送&接收&返回 简单应用实例

    下面小编就为大家分享一篇C# Socket 发送&接收&返回 简单应用实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • C#中的属性解析(get、set、value)

    C#中的属性解析(get、set、value)

    这篇文章主要介绍了C#中的属性(get、set、value),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • C#9.0新特性详解——顶级程序语句(Top-Level Programs)

    C#9.0新特性详解——顶级程序语句(Top-Level Programs)

    这篇文章主要介绍了C#9.0新特性详解——顶级程序语句(Top-Level Programs)的相关资料,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-12-12
  • C#实现Xml序列化与反序列化的方法

    C#实现Xml序列化与反序列化的方法

    这篇文章主要介绍了C#实现Xml序列化与反序列化的方法,将序列化与反序列化的方法封装入一个类文件中,包含了较为详尽的注释说明,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • C# Winform实现表格复制粘贴效果

    C# Winform实现表格复制粘贴效果

    这篇文章主要为大家学习介绍了如何通过C# Winform实现表格复制粘贴效果,文中的示例代码讲解详细,具有一定的参考价值,需要的可以了解一下
    2023-07-07
  • 基于WPF实现拟物音量控件

    基于WPF实现拟物音量控件

    这篇文章主要为大家详细介绍了如何基于WPF实现简单的拟物音量控件,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2023-05-05
  • string与stringbuilder两者的区别

    string与stringbuilder两者的区别

    今天小编就为大家分享一篇关于string与stringbuilder两者的区别,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01

最新评论