当前位置:编程学习 > C#/ASP.NET >>

richTextBox1.text怎么创建委托

--------------------编程问答--------------------

        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 });

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,