C#如何在线程中修改我的窗体控件的text文本

求教!困扰了很久!... 求教!困扰了很久! 展开
 我来答
谢3哥
2017-06-28 · TA获得超过120个赞
知道小有建树答主
回答量:402
采纳率:33%
帮助的人:141万
展开全部
线程不能操作窗体控件,会引发异常,建议使用委托进行窗体控件的操作,包括 改text.
追问
求个详细步奏,还在纠结中;我需要修改窗体RichTextBox
追答

1、定义委托

delegate void SetTextCallback(string text);

2、实现委托

private void SetText(string text)
        {
            //如果调用控件的线程和创建创建控件的线程不是同一个则为True
            if (this.textBox1.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(SetText);
                this.textBox1.Invoke(d, new object[] { text });
            }
            else
            {
                this.textBox1.Text = text;
            }
        }

3、线程中调用该方法

 private void ThreadProc()
        {
            //do something
            this.SetText("123");

        }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式