visual studio richtext框不显示文本

时间:2017-01-08 20:32:21

标签: c# visual-studio richtextbox

我正在使用Visual Studio 2017,我有一个RichTextBox,当我设置它时不显示文本:

public void ArduinoDataRecived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{ 
    SerialPort TempSerial = (SerialPort)sender;
    ConsoleTextBox.AppendText(TempSerial.ReadLine());
}

代码运行时没有错误,每当我调用MessageBox.Show(ConsoleTextBox.text)时,它都会显示串口发送的文本,但文本框不会显示。

如果我有一个完全不同的设置文本的方法,那么它有效吗?

1 个答案:

答案 0 :(得分:0)

可能是线程问题。这是来自the documentation的复制粘贴:

  

当数据出现时,在辅助线程上引发DataReceived事件   从SerialPort对象接收。因为这个事件是在一个   辅助线程,而不是主线程,试图修改一些   主线程中的元素,如UI元素,可以引发一个   线程异常。如果有必要修改main中的元素   表单或控件,使用Invoke发回更改请求,这样做   正确的线程上的工作。

P.S。在使用System.IO.Ports.SerialPort之前,请确保to read thisAnd this。不幸的是,.NET 4.5.2中仍然没有解决这些问题。不久前,我将我的串口通信代码从C#移植到C ++,使我的软件可以为所有用户可靠地工作。但是,如果它适用于您的计算机,并且您没有使用商业软件,则System.IO.Ports.SerialPort可能仍适用于您。