作者leho (哩厚)
看板C_Sharp
標題[問題] WinForm Refresh 的問題
時間Fri Jun 10 02:24:26 2016
我有一個問題想請問一下各位前輩,
當對 winform 的表頭 點住 滑鼠 左鍵不放(就是移動視窗位置 表頭 Text 那邊),
這時候winform 的內容似乎就不會更新,(像是LABEL 或 TEXTBOX 或 DATAGRIDVIEW 內容)
有查了一下,問題似乎是 UI thread 被 CLICK 咬住 所以導致無法更新?
想請問一下,
1. 問題真的是因為這樣嗎?
2.有沒有除了開一個新的 thread 的寫法?
如果 在 滑鼠 CLICK event 上 用 Application.DoEvents 有辦法解決嗎?
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.204.175.91
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1465496670.A.27A.html
※ 編輯: leho (123.204.175.91), 06/10/2016 02:40:35
1F:→ anumis: 你有什麼需求是一定要在滑鼠移動更新畫面?還是單純的想做 06/10 06:54
2F:→ anumis: 這個功能? 06/10 06:54
3F:→ leho: 因為可能會有再移動畫面時 畫面停住的問題 06/10 15:42
4F:→ ghostx2: 要看寫在哪個作業系統 行為不太一樣 06/10 17:55
5F:→ leho: 作業系統 應該是 win 7 06/10 20:02
6F:→ ghostx2: 我目前win10,我寫一個UI Timer刷時間,用你的步驟會顯示 06/10 21:48
7F:→ leho: 請問一下g大是說 用TIMER 去執行 更新的動作 還是單純的用 06/10 22:54
8F:→ leho: TIMER 來 作訊息處理顯示 像是 數字累加之類的? 06/10 22:55
9F:→ ghostx2: 單純用timer顯示當下時間而已,看秒數一樣會跳 06/10 23:29
10F:→ ghostx2: 你是不是用thread去invoke? 才導致卡頓? 06/10 23:29
11F:→ leho: g大 沒錯 我的確是這樣用的 06/11 05:02
12F:→ leho: 請問g大 所以這樣作是一定會卡頓嗎? 06/11 05:03
13F:→ ghostx2: 會搶UI使用權,還不如用timer刷狀態就好,或用BeginInvoke 06/11 20:22
14F:→ leho: 感謝g大 06/23 23:44