我无法以编程方式设置标签的文本 (vb.net)



我见过很多解决这个问题的可能方案,但似乎都不起作用。

Try
Dim ricevuto As String
ricevuto = SerialPort1.ReadExisting
If String.Compare(ricevuto.Substring(ricevuto.Length - 3), "OF") = 0 Then
Me.Label1.Text = "aperto"
Me.Label1.Refresh()
ElseIf String.Compare(ricevuto.Substring(ricevuto.Length - 3), "ON") = 0 Then
Me.Label1.Text = "chiuso"
Me.Label1.Update()
End If


Catch ex As Exception
End Try

这是代码,但Label1不会更改。

UPDATE:错误为";跨线程操作无效";

错误为"跨线程操作无效";

当您使用多个线程,并且您不再使用UI线程时,您需要Invoke更改:

Label1.Invoke(Sub() Label1.Text = "aperto")

展示全部内容:

Dim ricevuto As String = SerialPort1.ReadExisting()
Dim key As String = ricevuto.Substring(ricevuto.Length - 3)
If String.Compare(key, "OF") = 0 Then
Label1.Invoke(Sub() Label1.Text = "aperto")
ElseIf String.Compare(key, "ON") = 0 Then
Label1.Invoke(Sub() Label1.Text = "chiuso")
End If

最新更新