c# 怎么阻止事件执行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 怎么阻止事件执行相关的知识,希望对你有一定的参考价值。
比如说 listbox 分别有 buttonDown事件 和 selectedChanged事件
当我点击listbox中的一条内容时, 这两个事件都会触发, 所以就会执行两次
怎么能在buttonDown事件之后, 阻止selectedChended事件?
写错了 不是buttonDown 是 mouseDown...
看图吧,这类问题都是这么解决的。还有,做事情尤其是写代码要一丝不苟,ListBox貌似没有selectedChended事件,应该是SelectedIndexChanged吧。
参考技术A 在产生事件的时候是有传入参数的,sender就表示产生事件控件,判断下是那个按钮发出的事件就好了吧?我很纳闷你为什么要写在一个函数里面呢,既然是不同的功能直接写在两个响应函数不行吗?我很不理解。。。 参考技术B 在selectedChended事件第一行 return 一下追问
谢谢...最好可以是鼠标点击的时候执行 mouseDown 而selectedChanded不执行 但是如果键盘操作的话 selectedChanged还是要执行的
追答那就加个判断
你要做什么啊
就是一个listbox 一开始我只加了selectedChanged事件 但有个问题 比如说 listbox中有item1 item2 item3 比如说在点击item2的时候, 如果当前listbox中已经选中了item2 那就相当于没点了 所以加了一个mouseDown事件 这样就解决了如果有鼠标点击, 但是selectedChanged事件没触发的情况
但是如果现在listbox中选中的是item2 然后用鼠标去点item1或3 那mouseDown和SelectedChanged就都会触发 所以我真没办法了...- -
mouseDown与SelectedChanged事件都执行了什么操作呢
那么纠结
Jquery 事件执行两次
js(jquery)的on绑定点击事件执行两次的解决办法—不是事件绑定而是事件冒泡
阻止冒泡的方法并不止 return false 这一种,还有event.stopPropagation(),这两种方法是有区别的,简单来说:
event.stopPropagation()会阻止事件往上冒泡,但是并不阻止事件本身;
return false 则是既阻止了事件往上冒泡又阻止了事件本身。
修改前
$(".project_select").change(function () { var checkText=$(".project_select").find("option:selected").text(); //alert(checkText); if (checkText == ‘请选择‘) { return false; } });
修改后
$(".project_select").unbind(‘change‘).change(function () { var checkText=$(".project_select").find("option:selected").text(); //alert(checkText); if (checkText == ‘请选择‘) { return false; } });
以上是关于c# 怎么阻止事件执行的主要内容,如果未能解决你的问题,请参考以下文章
DataGridView CellFormatting 事件阻止表单绘制
vue阻止冒泡事件 阻止点击事件的执行 结合div和组件阻止点击事件