Re: [問題] 跨執行緒快速更新UI的問題

看板C_Sharp (C#)作者 (巴426)時間10年前 (2015/05/19 18:21), 10年前編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《james732 (好人超)》之銘言: : 目前用Winform寫一隻小程式 : 上面有個Label與DataGridView : 首先會開啟一個新的執行緒,然後產生亂數值 : (實際使用時,這個值會從serial port讀進來) : 然後把這個值更新至Label與DataGridView上 : 並把DataGridView捲動到最下面 你好 我的用法如下 可以參考下面類似的作法 雖然我是textBox, 不過其實差不多, 大部份UI元件都可以實現。 重點是new Callback1的方式 和 this.invoke else 依需求自己修正即可。 delegate void SetTextBoxCallback1(string text); private void Set_textBox1(string s) { if (this.textBox1.InvokeRequired) { SetTextBoxCallback1 stbc = new SetTextBoxCallback1(Set_textBox1); this.Invoke(stbc, new object[] { s }); } else { if (textBox1.Lines.Length > 20) { s_message = ""; this.textBox1.Text = ""; } this.textBox1.Text = s; this.textBox1.Select(textBox1.Text.Length, 0); this.textBox1.ScrollToCaret(); } } -- 就算這個世界不信任我 但我還是想相信這個世界 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.254.103 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1432030904.A.6A0.html

05/19 18:25, , 1F
呼叫set_textbox
05/19 18:25, 1F
※ 編輯: pkmu8426 (59.126.254.103), 05/19/2015 19:09:53

05/19 20:07, , 2F
雖然你給的答案好像不是我需要的,但還是謝謝你的回答:)
05/19 20:07, 2F
文章代碼(AID): #1LMmwuQW (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1LMmwuQW (C_Sharp)