C#无法在富文本框中看到字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#无法在富文本框中看到字符串相关的知识,希望对你有一定的参考价值。

我正在研究c# winforms。我的rich textbox中有一个main form。现在,我正在使用类HandleClient,其中正在使用要在其中调用函数的线程。在该函数中,我创建了我的主要形式的新对象。我的代码如下

// Buffer to store the response bytes.
byte[] data = new byte[9999];

Thread comThread;

public void startClient(TcpClient inClientSocket)
{
   this.clientsocket = inClientSocket;
   comThread = new Thread(doChat);
   comThread.Start();
}

private void doChat()
{

    MainForm form = new MainForm();

    while ((true))
    {
        try
        {

                // Read the first batch of the TcpServer response bytes.
                NetworkStream stream = clientsocket.GetStream();
                stream.ReadTimeout = 1000;
                int bytes = stream.Read(data, 0, data.Length);                 

                responseData = BitConverter.ToString(data,0,bytes); 

                // assigning the responseData value to Rich Text Box
                form.rtBRecievedData.Text = responseData; 

                stream.Close();
                clientsocket.Close();


            }
            catch (Exception ex)
            {
                Console.WriteLine(" >> " + ex.ToString());
                comThread.Abort();
            }
        }

}

responseData的值为01-01-01-01-00-01-00-19-F4-09-10-00-00-00-00-30-30-32-39-39-38-30-30-35-35-36-31-00-01-00-01-00-01-00-15-AA-10-00-00-00-00-30-30-32-39-39-38-30-30-35-35-36-31-12-00-12

现在主要问题是此字符串未显示在rich text box上。我可能会缺少我无法理解的内容。

任何帮助将不胜感激。

答案
form.rtBRecievedData.Text = responseData; 

处于循环中。但是没有Thread.Sleep()方法。

form.rtBRecievedData.Text在下一轮循环执行中可以由空的responseData字符串替换。

使用以下代码,

form.rtBRecievedData.Text += responseData; 

解决问题。最好在循环中睡眠,以延迟读取端口。

以上是关于C#无法在富文本框中看到字符串的主要内容,如果未能解决你的问题,请参考以下文章

VB6在富文本框中按下向上/向下箭头时禁用系统哔声?

打开保存的文件,其中包含对富文本所做的更改

tinymce富文本编辑器在iview的modal框中显示的问题

RichTextBox C# 设置插入符号位置 winforms

如何将包含各种值的消息放在C#的单独文本框中

C#中的变量无法从html文本框中获取值