在线程中不能直接操作控件,如果想操作必须通过 代理函数 来进行。系统内部给了一个不带任何参数的代理methodInvoke();,如果想在操作控件时想传递参数,则需要自定义一个代理,如
private delegate void SetTextBox(TextBox tb,string text);
具体的操作函数;
private void SetText(TextBox tb,string text)
{
tb.Text = text;
}
则在线程中调用
SetTextBox set_TextBox = new SetTextBox(SetText);
Invoke(set_TextBox,new object[]{tb_name,person_info.Name} );