簡體   English   中英

視覺工作室富文本框不顯示文本

[英]visual studio richtext box not displaying text

我正在使用 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)它都會顯示串行端口發送的文本,但文本框不顯示它。

如果我有一個完全不同的方法來設置文本,那么它有效嗎?

應該是線程問題。 這是文檔中的復制粘貼:

當從 SerialPort 對象接收數據時,在輔助線程上引發 DataReceived 事件。 由於此事件是在輔助線程而非主線程上引發的,因此嘗試修改主線程中的某些元素(例如 UI 元素)可能會引發線程異常。 如果需要修改主 Form 或 Control 中的元素,請使用 Invoke 發回更改請求,這將在適當的線程上完成工作。

PS 在使用 System.IO.Ports.SerialPort 之前,請務必閱讀此內容而這個 不幸的是,這些問題在 .NET 4.5.2 中仍未解決。 不久前,我將我的串行通信代碼從 C# 移植到 C++,以使我的軟件為所有用戶可靠地工作。 但如果它適用於您的機器,並且您不是在使用商業軟件,那么 System.IO.Ports.SerialPort 可能仍然適合您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM