richTextBox1.text怎么创建委托 本帖最后由 ooiikaka2 于 2011-10-30 20:53:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void button1_Click(object sender, EventArgs e) { ThreadStart threadStart = new ThreadStart(Calculate); //在次线程中改变textBox1的值 Thread thread = new Thread(threadStart); thread.Start(); } delegate void ChangText(double result); public void Calculate() { double Diameter = 0.5; double Result = Diameter * Math.PI; CalcFinished(Result); Thread.Sleep(2000); //this.BeginInvoke(new ChangText(CalcFinished), Result); } public void CalcFinished(double Result) { if (this.InvokeRequired) { this.BeginInvoke(new ChangText(CalcFinished), Result); } else { textBox1.Text = Result.ToString(); } } 你照着改改看呢 思路在异线程中请求(委托)控件所在线程对控件进行操作控件所在线程的代码其中 rtb 是 RichTextBox//调用操作控件方法的委托(接受异线程请求的委托)public delegate void delegateUpdateRtb(string str);//操作控件的方法public void UpdateRtb(string str){ rtb.AppendText(str); rtb.AppendText("\n");}异线程中的代码//必须使用Invoke,请求控件所在线程的委托来调用相应方法操作控件rtb.Invoke(new delegateUpdateRtb(UpdateRtb) , new object[] { parm }); Cannot read from a closed TextReader 数据库通用的问题 form2里的textbox的值传到form1的listview winform应用程序自动更新 C# 中如何计算含符号位和小数位的二进制字符串? 一个功能很强的像日记的控件,有谁用过呀,救命 dll被更换后,还需要重新编译应用程序吗? 怎样设置可以让combobox只能鼠标选择值,不能用键盘输入? 请问xml中的节点怎么读取? 一个判断DATETIME时间问题~~请大家帮帮我~~谢谢~ C# DataGridView改变列的顺序 如何读取已知合适的二进制文件
private void button1_Click(object sender, EventArgs e)
{
ThreadStart threadStart = new ThreadStart(Calculate); //在次线程中改变textBox1的值
Thread thread = new Thread(threadStart);
thread.Start();
}
delegate void ChangText(double result);
public void Calculate()
{
double Diameter = 0.5;
double Result = Diameter * Math.PI;
CalcFinished(Result);
Thread.Sleep(2000);
//this.BeginInvoke(new ChangText(CalcFinished), Result);
} public void CalcFinished(double Result)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new ChangText(CalcFinished), Result);
}
else
{
textBox1.Text = Result.ToString();
}
}
你照着改改看呢
在异线程中请求(委托)控件所在线程对控件进行操作
控件所在线程的代码
其中 rtb 是 RichTextBox
//调用操作控件方法的委托(接受异线程请求的委托)
public delegate void delegateUpdateRtb(string str);
//操作控件的方法
public void UpdateRtb(string str)
{
rtb.AppendText(str);
rtb.AppendText("\n");
}
异线程中的代码
//必须使用Invoke,请求控件所在线程的委托来调用相应方法操作控件
rtb.Invoke(new delegateUpdateRtb(UpdateRtb) , new object[] { parm });