非常に単純なコードに問題があります
Dim temperature As String = SerialPort1.ReadLine.ToString
If temperature.StartsWith("temp") Then
templab.Text = temperature.Substring(4, 2) & "°C"
End If
そしてそれは与える
Cross-thread operation not valid: Control 'templab' accessed from a thread other than the thread it was created on.
ラベルのテキストの設定について
私はこれをインターネットで検索し、いくつかの解決策を見つけましたが、私の問題はこれではありません。過去にVisual Studio 2008とWindows 7で同じコードを書いたことがありますが、エラーは発生しませんでした。今、私は Windows 8 と Visual Studio 2012 を使用しています。これを呼び出さずに解決するにはどうすればよいですか? 前もって感謝します
完全なコード:
Public Class Form1
Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim temperature As String = SerialPort1.ReadLine.ToString
If temperature.StartsWith("temp") Then
templab.Text = temperature.Substring(4, 2) & "°C"
End If
' My.Computer.Audio.Play("C:\Users\Chris\Desktop\ROMANTIC MUSIC INSTRUMENTAL, PIANO AND SAXOPHONE.wav", AudioPlayMode.Background)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SerialPort1.Open()
End Sub
End Class