亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

winform按鈕button變為灰色后依然可以執行 click

winform按鈕button變為灰色后依然可以執行 click

Qyouu 2018-07-28 08:06:46
在winform中的button,點擊后先設置enable為false,中間處理其他,最后設置enable為true但是執行過程中再點擊button,依然可以執行clickprivate void button1_Click(object sender, EventArgs e){button1.Enabled = false;textBox1.Text += "在執行中········";//process somethingtextBox1.Text += "執行完畢!";button1.Enabled= true;}這問題怎么解決
查看完整描述

2 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

這是因為消息機制引起的問題,如果處理click事件的函數執行時間過長,那么下一次點擊的消息會存入消息隊列,等到當前click處理函數退出以后,再從消息隊列獲取此消息執行。你可以使用我提供的代碼,多次點擊button,你會看到多次的重復執行。

解決此問題的辦法是盡可能的讓click事件處理函數的執行時間縮短,更嚴謹的做法是自己設置同步事件,忽略無效的點擊。


查看完整回答
反對 回復 2018-07-30
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

沒啥好說的:

把 調用 webservice 改成異步調用

完成后回調 執行

button1.Enabled= true;


查看完整回答
反對 回復 2018-07-30
  • 2 回答
  • 0 關注
  • 966 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號