在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级[急..] 我在一个方法中添加了一个线程进行读取服务器信息,在另一个方法中把从服务器得到信息付给一个textbox的属性,然后再把这个textbox添加到窗体上,之后就报了这个错误:在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级请问各位大虾们怎么解决.... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Windows是靠消息泵来运作的,一个线程中的消息泵是不能管到其他线程中的窗口(Textbox也是一个窗口)。解决方法:委托给主线程来添加控件。form1.Invoke(...); public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Thread t = new Thread(new ThreadStart(CreateUI)); t.Start(); } private void CreateUI() { AddTextBox(); } private void AddTextBox() { if (this.InvokeRequired) { this.Invoke(new MethodInvoker(delegate { AddTextBox(); })); return; } TextBox tb = new TextBox(); tb.Text = "test"; this.Controls.Add(tb); } } C#做一个屏保程序 求一含linq的方法写法 MVC3 UpdateModel 方法疑问 我c#想生成一个exe文件,点击这个exe文件打开一个网址例如:http://community.csdn.net/ XML (报错)未将对像引用设置到对像的实例?? TreeList.AppendNode()出错,怎么办? 想在VS2005中C#代码编辑器中超链接,但是 高分求教有关winform程序的写法,希望大家都来帮忙(通宵等) 深圳朋友帮个忙:谁有vs.net 第二张呀,我1,3,4,5张都是好的。 请问这个怎么实现? 请问这个正则怎么修改?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(CreateUI));
t.Start();
} private void CreateUI()
{
AddTextBox();
} private void AddTextBox()
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate { AddTextBox(); }));
return;
}
TextBox tb = new TextBox();
tb.Text = "test";
this.Controls.Add(tb);
} }