如下代码是在同一个窗体类中,试了可以实现。
public partial class Form1 : Form
{
delegate void SetTextCallback(string text);//声明更新控件用的代理委托 private void SetlbSendStatuText(string text)//定义更新控件的方法
{
if (this.lbSendStatu.InvokeRequired)//lbSendStatu为主窗体中一个label控件
{
SetTextCallback d = new SetTextCallback(SetlbSendStatuText);
this.Invoke(d, new object[] { text });
}
else
{
this.lbSendStatu.Text = text;
}
}
private void myThread()//自定义线程
{
this.SetlbSendStatuText("要更新的肉容");
}
}
请问(1)线程信息都封装在另一个类里面,在该类中如何调用委托修改界面控件的属性?是否在该类中还要创建窗体类的实例?
public partial class Form1 : Form
{
delegate void SetTextCallback(string text);//声明更新控件用的代理委托 private void SetlbSendStatuText(string text)//定义更新控件的方法
{
if (this.lbSendStatu.InvokeRequired)//lbSendStatu为主窗体中一个label控件
{
SetTextCallback d = new SetTextCallback(SetlbSendStatuText);
this.Invoke(d, new object[] { text });
}
else
{
this.lbSendStatu.Text = text;
}
}
private void myThread()//自定义线程
{
this.SetlbSendStatuText("要更新的肉容");
}
}
请问(1)线程信息都封装在另一个类里面,在该类中如何调用委托修改界面控件的属性?是否在该类中还要创建窗体类的实例?
==============================
你都是在一个类里的啊,class Form1 .不需要在创建实例了.你可以跟踪以下,其实你调this.SetlbSendStatuText("要更新的肉容");
这个方法的时候,该方法是执行了2次的了.
第一次是判断inovkerequired,
然后再有执行一次
需要这个培训视频的朋友请联系 QQ 936652114
个人认为不是安全的,不然2.0也不会严格控制了,故可以实现但不可取。感谢兄弟姐妹们的关注。