Re: [问题] 跨执行绪快速更新UI的问题

楼主: pkmu8426 (巴426)   2015-05-19 18:21:37
※ 引述《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();
}
}
楼主: pkmu8426 (巴426)   2015-05-19 18:25:00
呼叫set_textbox
作者: james732 (好人超)   2015-05-19 20:07:00
虽然你给的答案好像不是我需要的,但还是谢谢你的回答:)

Links booklink

Contact Us: admin [ a t ] ucptt.com