从标签中的串行端口接收数据时,它从新行开始。我希望将旧数据替换为新数据。
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
myPort = IO.Ports.SerialPort.GetPortNames()
ComboBox1.Items.AddRange(myPort)
closeButton.Enabled = False
End Sub
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) 'input from ReadExisting
If Me.Label1.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.Label1.Text &= [text] 'append text
End If
End Sub
答案 0 :(得分:0)
如果您希望新数据替换标签文本中的旧数据,不是仅将&
从附加到文本的行中删除,而是替换为新文本吗? / p>
我不熟悉串行端口读取器如何发送数据-您可能必须将传入的数据构建为缓冲区字符串,搜索新行并手动分割字符串,但这应该非常简单。 / p>