C# 在一个线程类中取得主窗体控件 20
有一个主窗体frmDisplay,还有一个线程类TCPListener,主窗体显示后启动线程监听,现在已经在TCPListener中取得了监听得到的内容(一些字符串),我...
有一个主窗体frmDisplay,还有一个线程类TCPListener,主窗体显示后启动线程监听,现在已经在TCPListener中取得了监听得到的内容(一些字符串),我要把它显示在主界面得一个label里,一般的方法似乎不可以,是不是需要委托?或者谁有好的方法,请提供思路或者帮忙解决,谢谢
线程是独立的一个类,取不到主窗体的控件。 展开
线程是独立的一个类,取不到主窗体的控件。 展开
3个回答
展开全部
使用委托,然后可以将lable做成静态的控件,即定义的时候加上static,在使用lable.invoke调用这个委托,已修改值。或者将lable或主窗体传递给tcplistener作为一个类成员,然后使用invoke调用委托相对的方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用委托
public delegate void OutPut(string str);
private void addTxt(string str)
{
label1.AppendText(str);
}
在线程中使用下面代码:
label1.Invoke(new OutPut(addTxt), new object[] {tempstr.ToString()});//tempstr是表示得到的数据
public delegate void OutPut(string str);
private void addTxt(string str)
{
label1.AppendText(str);
}
在线程中使用下面代码:
label1.Invoke(new OutPut(addTxt), new object[] {tempstr.ToString()});//tempstr是表示得到的数据
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mark
来向高手学习的
来向高手学习的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询