日期:2014-05-20  浏览次数:20806 次

对一个WinForm设置enabled=false,为什么还会响应Click事件?
一个WinForm,中有Button1,Button2,
运行Button1时,先设置WinForm的enabled=false,然后执行一个长事件的方法,这时单击Button2,不执行任何事件。当Button1的事件执行完毕后,设置WinForm的enabled=true,这时刚才点击的Button2的事件才响应。
为什么Enabled=false了,还会响应Click事件?能否不让响应?

------解决方案--------------------
你的是单线程的程序?BUTTON1的事件很长,理论上单线程是单击不了BUTTON2的吧

再说,你在BUTTON1的事件中加入“button2.enable = false”不就行了?
------解决方案--------------------

button2.enable = false;

//事件处理
button2.enable =true;
------解决方案--------------------
在Button1的事件里开始的时候用-=把Button2的事件去掉,在长时间操作完成后再用+=添加上就OK了