public void Receive()
        {
            Form2 new_form2 = new Form2();
            while (true)
            {
                Byte[] Receive = new byte[64];
                NetworkStream Net_stream = new NetworkStream(new_form2.Acc_Socket1);
                Net_stream.Read(Receive, 0, Receive.Length);//读取客户发送来的信息。
                string RecMessage = System.Text.Encoding.BigEndianUnicode.GetString(Receive);
                richTextBox1.AppendText(RecMessage + "\r\n");//写入到接收信息栏中。
            }
        }
上面是程序的部分代码
我用中断的方式看到RecMessage中是有数据的,但到下面就显示不出来,在richtextbox中的text中显示RecMessage的内容

解决方案 »

  1.   

    应该是死循环的问题
    你在这个
     richTextBox1.AppendText(RecMessage + "\r\n");//写入到接收信息栏中。
    下面加个
    Application.DoEvents();试试
    说不定就可以了
      

  2.   

    Receive()方法是在别的窗口中的?如果这样的话你需调用的richtextbox就要声明为public static的。
      

  3.   

    如果改成public static 要改的好多啊,像this.richtextbox都错误了
      

  4.   

    还有个简单方法,用Application.OpenForm["formname"].Richtextbox.Text
      

  5.   

    前面一种方法试过,好像不行,简单方法这个richtextbox都出不来,就是打的时候
      

  6.   

    Application前面用(FormName)强行转换。
      

  7.   

    还是出不来那,麻烦alldj了,是这样吗窗体名字为Form1,然后(Form1)
      

  8.   

    我记得以前做过这样的程序,或者再试种方法,在richtextbox的窗体里加一个public static方法,从这个方法里传值进去,再将值赋给richtextbox试试。
      

  9.   

    + richTextBox1 {Text = "哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n哈哈\n"} System.Windows.Forms.RichTextBox
    这个是value,都是能看到的就是不能显示
      public static void GetTextValue(string tem_str)
            {
                Form1 new_form1=new Form1();
                new_form1.richTextBox1 .AppendText(tem_str);    
            }
    我这样建的,还是不行,郁闷
      

  10.   

    我看到跨线程的要用contol.invoke来调用,我就按照看的建了代理等,不过我调试的时候出来说是 Invoke or BeginInvoke cannot be called on a control until the window handle has been created.不知道为什么