[問題] WinForm Refresh 的問題

看板C_Sharp (C#)作者 (哩厚)時間9年前 (2016/06/10 02:24), 9年前編輯推噓0(0014)
留言14則, 3人參與, 最新討論串1/1
我有一個問題想請問一下各位前輩, 當對 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

06/10 06:54, , 1F
你有什麼需求是一定要在滑鼠移動更新畫面?還是單純的想做
06/10 06:54, 1F

06/10 06:54, , 2F
這個功能?
06/10 06:54, 2F

06/10 15:42, , 3F
因為可能會有再移動畫面時 畫面停住的問題
06/10 15:42, 3F

06/10 17:55, , 4F
要看寫在哪個作業系統 行為不太一樣
06/10 17:55, 4F

06/10 20:02, , 5F
作業系統 應該是 win 7
06/10 20:02, 5F

06/10 21:48, , 6F
我目前win10,我寫一個UI Timer刷時間,用你的步驟會顯示
06/10 21:48, 6F

06/10 22:54, , 7F
請問一下g大是說 用TIMER 去執行 更新的動作 還是單純的用
06/10 22:54, 7F

06/10 22:55, , 8F
TIMER 來 作訊息處理顯示 像是 數字累加之類的?
06/10 22:55, 8F

06/10 23:29, , 9F
單純用timer顯示當下時間而已,看秒數一樣會跳
06/10 23:29, 9F

06/10 23:29, , 10F
你是不是用thread去invoke? 才導致卡頓?
06/10 23:29, 10F

06/11 05:02, , 11F
g大 沒錯 我的確是這樣用的
06/11 05:02, 11F

06/11 05:03, , 12F
請問g大 所以這樣作是一定會卡頓嗎?
06/11 05:03, 12F

06/11 20:22, , 13F
會搶UI使用權,還不如用timer刷狀態就好,或用BeginInvoke
06/11 20:22, 13F

06/23 23:44, , 14F
感謝g大
06/23 23:44, 14F
文章代碼(AID): #1NMRHU9w (C_Sharp)
文章代碼(AID): #1NMRHU9w (C_Sharp)