[英]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.