无法读取接收到文本框的序列数据

时间:2016-04-28 16:23:24

标签: vb.net

我正在尝试将收到的序列数据写入一个类的文本框到我的表单。

我正在使用代码:

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

我有一个从课堂上读书的表格。

1 个答案:

答案 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