public void ShowText(string Texts)
        {
            if (this.InvokeRequired)
            {
                this.Invoke((EventHandler)delegate { this.ShowText(Texts); });
                return;
            }            else
            {
                richTextBox1.AppendText(Texts);
                MessageBox.Show(Texts);
            }        }
为什么  MessageBox.Show(Texts);          这句可以正常。
而      richTextBox1.AppendText(Texts);  这句没反应?

解决方案 »

  1.   

    你再加几句其他的语句看能不能执行。如果能,那就说明richTextBox1那句语法有问题。
      

  2.   

    richTextBox1.Text = Texts;这样也不行
      

  3.   

    richTextBox1.AppendText(texts);//插入texts到richbox
    richTextBox1.Text(texts);//richbox赋值
    这两句代码没问题的,断点调试,看看别的地方哪里没传到值
      

  4.   

            delegate void ShowTextDelegate(string Texts);
            public void ShowText(string Texts)
            {
                if (this.InvokeRequired)
                {
                    ShowTextDelegate d = new ShowTextDelegate(ShowText);
                    this.Invoke(d, new object[]{Texts});
                    return;
                }            else
                {
                    richTextBox1.AppendText(Texts);
                    MessageBox.Show(Texts);
                }        }如果没参数肯定OK
    有参数最好按要求来。
      

  5.   

    你为什么不把委托函数和赋值的分成两个函数?在一个里面应该是不能访问创建RichTextBox线程的那个
      

  6.   

    是你的Texts值一样了吧
    跟踪调试下

     else
                {
                    richTextBox1.AppendText("我改变了");
                    MessageBox.Show(Texts);
                }
      

  7.   

    没反应是啥意思?是这句跑飞了还是RichTextBox里的值没变?
      

  8.   

    public void ShowText(string Texts)
            {
                if (this.InvokeRequired)
                {
                    this.Invoke(this.ShowText, new object[]{Texts});
                    return;
                }            else
                {
                    richTextBox1.AppendText(Texts);
                    MessageBox.Show(Texts);
                }        }
      

  9.   

    RichTextBox里的值没变,还是空白的。程序结构如下:
    主窗体 - 启动线程 - 子线程调用主窗体的代码,并在主窗体的 1ichTextBox1 中显示。
      

  10.   

    如果到了MessageBox,那表示richTextBox1已经执行。如果看到的内容没变,可能是需要刷新显示?如Refresh之类的?
      

  11.   


            delegate void ShowTextDelegate(string Texts);
            public void ShowText(string Texts)
            {
                if (this.InvokeRequired)
                {
                    ShowTextDelegate d = new ShowTextDelegate(ShowText);
                    this.Invoke(d, new object[] { Texts });
                    return;
                }            else
                {
                    richTextBox1.AppendText("Texts");
                    richTextBox1.Refresh();
                    MessageBox.Show(Texts);
                }        }mssagebox 能正确地显示 Texts 的内容,而 richTextBox1 的内容还是空白啊。
      

  12.   

     delegate void ShowTextDelegate(string Texts);
            public void ShowText(string Texts)
            {
                if (richTextBox1.InvokeRequired)
                {
                    ShowTextDelegate d = new ShowTextDelegate(ShowText);
                    richTextBox1.Invoke(d, new object[] { Texts });
                    return;
                }            else
                {
                    richTextBox1.AppendText("Texts");
                    richTextBox1.Refresh();
                    MessageBox.Show(Texts);
                }        }
    试试这个
      

  13.   

    我怀疑你是因为笔误导致你看到的那个richTextBox1不是你修改的那个richTextBox1,或者刚改完哪里又把它清空了,呵呵。