关于线程中调用修改主窗体中的控件

kingorange2309 2011-08-23 04:48:11
在一个窗体中创建一个线程,线程中的方法需要修改这个窗体中控件的属性,比如显隐等,可是调用时说不可修改创建线程窗体的控件,请高人指教如何实现
...全文
79 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanserzhao 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 g8t9_ 的回复:]
学习...
[/Quote]

要学习看我这个
http://topic.csdn.net/u/20110823/15/6e02718d-fedb-475e-b142-132dcb9634e4.html
G8T9_ 2011-08-23
  • 打赏
  • 举报
回复
学习...
yojinlin 2011-08-23
  • 打赏
  • 举报
回复

private void setTextBox1Visible_Click(object sender, EventArgs e)
{
Action func = () =>
{
this.textBox1.Visible = true;
};
if (this.textBox1.InvokeRequired)
{
this.textBox1.Invoke(func);
}
else
{
func();
}
}
lanserzhao 2011-08-23
  • 打赏
  • 举报
回复
例:
private delegate void WriteTxtDelegate(TextBox tb,string p_info);


private void WriteTextBox(TextBox tb,string p_info)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new WriteTxtDelegate(WriteTextBox), new object[] { tb, p_info });
}
else
{
lock (sTxtBoxObj)
{
try
{
int intLine = System.Text.RegularExpressions.Regex.Matches(tb.Text, "\r\n").Count;
if (intLine > 200)
tb.Text = DateTime.Now.ToString() + ":" + p_info + "\r\n";
else
tb.Text += DateTime.Now.ToString() + ":" + p_info + "\r\n";

tb.Select(tb.TextLength, 0);
tb.ScrollToCaret();
}
catch { }
}
}

}



还有,你给的分太少了
lanserzhao 2011-08-23
  • 打赏
  • 举报
回复
用委托,invoke,我刚碰到过




我还有个问题呢,有时间帮我看下

http://topic.csdn.net/u/20110823/15/6e02718d-fedb-475e-b142-132dcb9634e4.html?98078

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧