在C#winform应用程序中,对于键盘响应事件,经常使用到”KeyPress”、“KeyUp”、”KeyDown”事件,可以处理某个按键的自定义处理事件。有时想定义方向键的自定义处理事件时,你可以发现,虽然自定义的处理事件发生了响应,但是也可以看到,按下方向键时,发现窗体上控件的焦点也发生了切换。而这种结果不是我们想要的,我们不想按下方向键时,控件的焦点发生切换,只想响应我们自定义的处理函数即可。下面的方法可以取消方向键对控件焦点的控制:
代码如下:
protectedoverrideboolProcessCmdKey(refMessagemsg,KeyskeyData)//取消方向键对控件的焦点的控件,用自己自定义的函数处理各个方向键的处理函数
{
switch(keyData)
{
caseKeys.Up:
UpKey();
returntrue;//不继续处理
caseKeys.Down:
DownKey();
returntrue;
caseKeys.Left:
LeftKey();
returntrue;
caseKeys.Right:
RightKey();
returntrue;
}
returnbase.ProcessCmdKey(refmsg,keyData);
}
UpKey()、DownKey()、LeftKey()、RightKey()分别是自定义的各个方向键的处理函数。在各个自定义处理函数之后使用returntrue表示对按键的响应不继续处理,直接返回,这样就可以避免了方向键对控件焦点的控制。对于其他的按键,returnbase.ProcessCmdKey(refmsg,keyData);使用默认的处理。
您可能感兴趣的文章:C#WINFORM强制让窗体获得焦点的方法代码C#,winform,ShowDialog,子窗体向父窗体传值C#设置子窗体在主窗体中居中显示解决方案C#窗体编程不显示最小化、最大化、关闭按钮的方法C#开发圆角控件(窗体)的具体实现C#实现让窗体永远在窗体最前面显示的实例用C#Winform做出全透明的磨砂玻璃窗体效果代码C#Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法c#winform关闭窗体时同时结束线程实现思路C#SkinEngine控件给窗体添加皮肤的方法C#最简单的关闭子窗体更新父窗体的实现方法C#实现让窗体获得焦点的方法示例
C语言接口与实现方法实例详解
C语言位图算法详解
上述就是C#学习教程:解决C#中取消方向键对控件焦点控制的实现方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/904754.html