トランシーバーからシリアル ポートに温度値を読み込んでおり、この値によって Visual Basic フォームのラベルの値を変更したいと考えています。この値は数秒ごとに変化します。以下のコードを使用しています。
Me.dataReceived.Text &= [text]
ここで、dataReceived は使用しているラベルで、[text] はシリアル ポートから読み取っているデータです。これにより、データが表示されますが、ラベルを上書きする代わりに、値を次々に書き込みます。(データが追加されます)。= の前に & を削除しようとしましたが、何も表示されなかったため、これは機能しませんでした。私に何ができるかについてのアイデアはありますか?
私が使用しているコードは次のとおりです。
'To receive data into the text field
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
While (SerialPort1.IsOpen)
ReceivedText(SerialPort1.ReadExisting()) 'This is called automatically every time data is received at the Serial Port
End While
End Sub
Private Sub ReceivedText(ByVal [text] As String)
Dim temperature As String
'This function compares the creating Thread's ID with the calling Thread's ID
If Me.dataReceived.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
'To output to the text box:
Me.dataReceived.Text = text
'To output to the label
temperature = text
Me.temp.Text = text
hmd.Text = temperature
End If
End Sub