WinForm,如何解决窗体KeyDown事件(快捷键)对文本框的影响(如delete键)

问题描述

定义了Form的KeyDown事件,来响应常用快捷键,如Del,但在文本框是按Del也会进行响应,请问如果让文本框不影响?

解决方案

解决方案二:
想了好几天,没能想出来。一在CSDN发贴就想到了。。。每次都这样,感觉好败家,分数都这样没的
解决方案三:
对文本框同样进行KeyDown事件,屏蔽del
解决方案四:
引用2楼xdashewan的回复:

对文本框同样进行KeyDown事件,屏蔽del

先执行窗体的,再执行文本框的,所以,这个方法不行
解决方案五:
败家份子,说下你怎么解决的呗
解决方案六:
引用4楼starfd的回复:

败家份子,说下你怎么解决的呗

先看看大家的做法。
解决方案七:
hook为什么不能呢
解决方案八:
测了下并没有这样的问题楼主贴代码看看
解决方案九:
引用6楼qq_15030865的回复:

hook为什么不能呢

在文本框的PreviewKeyDown事件中,动态设置Form的KeyPreview为false,解决了这个问题。然后,再在KeyDown事件中恢复,即可。
解决方案十:
引用7楼ducker3590的回复:

测了下并没有这样的问题楼主贴代码看看

我的Form的KeyPreview设置的是true,可能是这个原因吧,呵呵
解决方案十一:
引用4楼starfd的回复:

败家份子,说下你怎么解决的呗

在文本框的PreviewKeyDown事件中,动态设置Form的KeyPreview为false,解决了这个问题。然后,再在KeyDown事件中恢复,即可。思路的问题,嘿嘿
解决方案十二:
用processcmdkey做快捷键吧
解决方案十三:
引用11楼daiqianjie的回复:

用processcmdkey做快捷键吧

没试过

时间: 2024-12-03 03:55:33

WinForm,如何解决窗体KeyDown事件(快捷键)对文本框的影响(如delete键)的相关文章

控件-C# 单窗体keydown事件不响应

问题描述 C# 单窗体keydown事件不响应 没有别的控件,具体情况如下: 解决方案 this.keydown += form1_keydown; 这个写了么 解决方案二: 直接从属性窗口的事件双击,keycode,控制按键用e.control&e.keycode 解决方案三: 问题一描述:当新建一个窗体时,添加KeyDown事件后,会正常处理,但是当添加有控件时,比如Button,TextBox,不会触发窗体的KeyDown事件,也没有调用KeyDown事件的处理程序. 原因:由于窗体中添加

JavaScript监听文本框回车事件并过滤文本框空格的方法_javascript技巧

本文实例讲述了JavaScript监听文本框回车事件并过滤文本框空格的方法.分享给大家供大家参考.具体如下: <script type="text/javascript" language="javascript"> var username = null; var password = null; //获取文本框 onload = function() { username = document.getElementById("txtUser

easyui-用户登陆按Enter提交时,keydown事件覆盖了$.messager.alert()弹出框

问题描述 用户登陆按Enter提交时,keydown事件覆盖了$.messager.alert()弹出框 在用户登陆界面中,在页面初始化时,添加键盘事件: $(function() { $(document).keydown(function(e){ if(e.keyCode == 13){ login(); } }); }); function login(){ $.ajax();发送请求在回调函数中调用easyui提供的 $.messager.alert('登录提示', '用户名不存在!',

JQuery easy ui验证在文本框为空时不会触发验证事件,求解决!!!

问题描述 JQuery easy ui验证在文本框为空时不会触发验证事件,求解决!!! JQuery easy ui验证在文本框为空时不会触发验证事件, 用户组: 这里我用JQuery easy ui 生成了一个下拉框,为空时文本框不会触发验证事件 这里是验证的扩展代码: $.extend($.fn.validatebox.defaults.rules, { valiEmp: { //验证用户Id是否有效 validator: function (value, param) { var bl =

winform文本框焦点异常

问题描述 winform文本框焦点异常 Aids.RegisterHotKey(Handle, 122, KeyModifiers.Alt, Keys.E) case 122: this.phone.SelectAll(); this.phone.Focus(); break; 定义快捷键使文本框获得焦点,但很奇怪的是该文本框获得焦点后有时候光标停住不闪烁,有时候闪烁,不闪烁的时候按一下任意键就闪烁了.这是什么情况请高手指点,是winform的项目. 解决方案 文本框没有边距,焦点没有显示出来吧

jQuery简单设置文本框回车事件的方法_jquery

本文实例讲述了jQuery简单设置文本框回车事件的方法.分享给大家供大家参考,具体如下: $(document).ready(function () { $("#txt_JumpPager").keydown(function (e) { var curKey = e.which; if (curKey == 13) { $("#lbtn_JumpPager").click(); return false; } }); }); 其中的txt_JumpPager为文本

js-jquery验证文本框不为空,失去焦点事件怎么只能执行一次

问题描述 jquery验证文本框不为空,失去焦点事件怎么只能执行一次 var name = $("input[name='name']"); var nameval = name.val(); var nameinfo = $("#nameinfo"); name.on('blur',function(){ if($.trim(nameval) == ''){ nameinfo.show(); }else{ nameinfo.hide(); } }); 解决方案 j

文本框内容变化,执行事件

问题描述 如果文本框内容发生改变的话,就执行一些动作.使用textchanged事件么?文本框名为txtOperatorID,我在txtOperatorID_TextChanged()里面写了代码,怎末没执行啊? 解决方案 解决方案二:据我所知服务器控件没有这个事件吧?解决方案三:AutoPostBack="True"解决方案四:HTML页面中加上AutoPostBack="true"解决方案五:OnTextChanged="txtOperatorID_T

jQuery监控文本框事件并作相应处理的方法_jquery

本文实例讲述了jQuery监控文本框事件并作相应处理的方法.分享给大家供大家参考.具体如下: //事情委托 $(document) .on('input propertychange', '#query', function(){ var input = $(this).val(); show(input); }); var show = function(txt){ var info = '监听:<b>' + txt + '</b><br /><br />