当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-10-20

    本文导语:  在C# winform 应用程序中,对于键盘响应事件,经常使用到"KeyPress"、“KeyUp”、"KeyDown"事件,可以处理某个按键的自定义处理事件。有时想定义方向键的自定义处理事件时,你可以发现,虽然自定义的处理事件发生了响应,但是...

在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#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C# mysql 插入数据,中文乱码的解决方法
  • C# WinForm程序完全退出的问题解决
  • 解决C#获取鼠标相对当前窗口坐标的实现方法
  • 使用C# Winform应用程序获取网页源文件的解决方法
  • 使用C#获取系统特殊文件夹路径的解决方法
  • C#窗体程序仅允许启动一次的解决方法
  • C# 使用匿名函数解决EventHandler参数传递的难题
  • C#操作FTP出现500错误解决办法
  • c#使用process.start启动程序报错解决方法
  • C#线程间不能调用剪切板的解决方法
  • C# Mysql 查询 Rownum的解决方法
  • C# HttpClient Cookie验证解决方法
  • 解决C# X64应用程序中读取WParam溢出的问题
  • C# KeyUp事件中MessageBox的回车(Enter)键回调问题解决方案
  • C#中将字符串转换为整型的三种解决方法总结
  • C#百万数据查询出现超时问题的解决方法
  • C#利用com操作excel释放进程的解决方法
  • c#使用nsoup解析html乱码解决方法分享 nsoup教程
  • c#代码自动修改解决方案下任意文件实例
  • JBUILDER6下控件都不能显示中文吗?请指教该怎么解决
  • 如何解决swing控件在IE中汉字显示十分不美观的问题?
  • jquery dialog open后,服务器端控件失效的快速解决方法
  • 为什么application中菜单的子菜单总被其他控件覆盖,如何解决?
  • asp.net ajax时用alert弹出对话框与验证控件冲突的解决方法
  • 紧急求援,JAVA中,怎么调用VC写的DLL和OCX控件???在线等待,解决立即给分!!!
  • 解决ASP.NET回传后div滚动条位置复位的问题(利用隐藏控件原理)
  • JBuilder怎样和数据库控件建立联系?解决了,就给分!
  • database控件的Connection属性对话框怎么设置?<解决了马上给分!>
  • asp.net aspnetpager控件分页统计数据不准确的解决方法
  • WinForm拖拽控件生成副本的解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何设定“确定”和“取消”按钮的退出属性?(昨日未解决,今日重问)在线等待
  • secureCRT下Linux终端汉字乱码解决方法
  • VS2005解决方案管理器中不显示解决方案节点的解决办法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 有高手能破解RAR的密码吗,至今没有找到人能解决?(先只给10分意思意思,若解决,至少给解决的人500分!说话算话!)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 解决 select 挡住div的解决方法
  • window.onload事件覆盖掉body onload事件(window.onload和html body onload事件冲突)解决办法
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 解决!解决!求助如何安装多系统!
  • andriod中UIScrollView无法正常滚动的解决方法
  • 解决多级索引速度慢的问题可否像解决多级页表那样使用TLB?
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • Liunx命令tar压缩出现如下错误该怎么解决?急需解决!感谢
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 求数据库解决方案===求数据库解决方案
  • windows server2008上PowerBuilder程序系统错误解决方法
  • MYSQL安装时解决要输入current root password的解决方法
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • 解决oracle用户连接失败的解决方法
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 呵呵,前段时间Ubuntu服务器版的问题总算解决了,解决方法就是重新安装桌面版-_-!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    C# WinForm程序完全退出的问题解决 iis7站长之家