【问题标题】:visual studio richtext box not displaying textVisual Studio RichText 框不显示文本
【发布时间】:2017-01-09 11:29:08
【问题描述】:

我使用的是 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) 时,它都会显示串行端口发送的文本,但文本框不显示它。

如果我有一个完全不同的方法来设置文本,那么它可以工作吗?

【问题讨论】:

  • 请出示代码!!!

标签: c# visual-studio richtextbox


【解决方案1】:

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

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

附:在使用 System.IO.Ports.SerialPort 之前,请确保 to read thisAnd this。不幸的是,.NET 4.5.2 中的问题仍未解决。不久前,我将串行通信代码从 C# 移植到 C++,以使我的软件对所有用户都可靠地工作。但是,如果它可以在您的机器上运行,并且您不是在使用商业软件,那么 System.IO.Ports.SerialPort 可能仍然适合您。

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2014-10-01
    • 2020-04-11
    相关资源
    最近更新 更多