您的位置:首页 > 其它

如何在子线程中操作主线程的控件

2009-09-11 11:08 246 查看
一般来说,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。

/// <summary>
/// 修改UI线程创建控件属性的委托
/// </summary>
delegate void SetTextCallback(string text);

private void SetText(string text)
{
if (this.Msg.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.Msg.Text = text;
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: