[問題] WinForm Refresh 的問題

作者: leho (哩厚)   2016-06-10 02:24:26
我有一個問題想請問一下各位前輩,
當對 winform 的表頭 點住 滑鼠 左鍵不放(就是移動視窗位置 表頭 Text 那邊),
這時候winform 的內容似乎就不會更新,(像是LABEL 或 TEXTBOX 或 DATAGRIDVIEW 內容)
有查了一下,問題似乎是 UI thread 被 CLICK 咬住 所以導致無法更新?
想請問一下,
1. 問題真的是因為這樣嗎?
2.有沒有除了開一個新的 thread 的寫法?
如果 在 滑鼠 CLICK event 上 用 Application.DoEvents 有辦法解決嗎?
謝謝。
作者: anumis (阿努米斯)   2016-06-10 06:54:00
你有什麼需求是一定要在滑鼠移動更新畫面?還是單純的想做這個功能?
作者: leho (哩厚)   2016-06-10 15:42:00
因為可能會有再移動畫面時 畫面停住的問題
作者: ghostx2 (Ghostx2)   2016-06-10 17:55:00
要看寫在哪個作業系統 行為不太一樣
作者: leho (哩厚)   2016-06-10 20:02:00
作業系統 應該是 win 7
作者: ghostx2 (Ghostx2)   2016-06-10 21:48:00
我目前win10,我寫一個UI Timer刷時間,用你的步驟會顯示
作者: leho (哩厚)   2016-06-10 22:54:00
請問一下g大是說 用TIMER 去執行 更新的動作 還是單純的用TIMER 來 作訊息處理顯示 像是 數字累加之類的?
作者: ghostx2 (Ghostx2)   2016-06-10 23:29:00
單純用timer顯示當下時間而已,看秒數一樣會跳你是不是用thread去invoke? 才導致卡頓?
作者: leho (哩厚)   2016-06-11 05:02:00
g大 沒錯 我的確是這樣用的請問g大 所以這樣作是一定會卡頓嗎?
作者: ghostx2 (Ghostx2)   2016-06-11 20:22:00
會搶UI使用權,還不如用timer刷狀態就好,或用BeginInvoke
作者: leho (哩厚)   2016-06-23 23:44:00
感謝g大

Links booklink

Contact Us: admin [ a t ] ucptt.com