我正在尝试将收到的序列数据写入一个类的文本框到我的表单。
我正在使用代码:
Public Shared Sub DataReceviedHandler(sender As Object, e As SerialDataReceivedEventArgs)
Dim sp As SerialPort = CType(sender, SerialPort)
Dim indata As String = sp.ReadExisting()
frmRBATestMain.RichTextBox1.AppendText("Data Received:" + Environment.NewLine)
frmRBATestMain.RichTextBox1.AppendText(indata + Environment.NewLine)
End Sub
由于某种原因,它不会写入RichTextBox,它总是保持空白??
但是,如果我在控制台中运行它可行。为什么这不起作用?
我想复制这个:
https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.datareceived(v=vs.90).aspx
我有一个从课堂上读书的表格。
答案 0 :(得分:0)
尝试这样的事情:
Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
ReceivedText(SerialPort1.ReadExisting())
End Sub
Private Sub ReceivedText(ByVal [text] As String)
If Me.TextBox1.InvokeRequired Then
Dim x As New SetTextCallBlack(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox1.Text &= [text]
End If
End Sub