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