请检查所附图片。 我想通过串行端口将其他应用程序的数据接收到Visual Studio Windows窗体中,并将某些条件应用于接收到的数据,如图所示,但不幸的是我遇到了此错误,我尝试进行更多的修复,但徒劳无功。 我想请您帮助解决这个问题并编辑我的代码。 谢谢
Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim value As Byte = SerialPort1.ReadLine()
If (((value) & 2) <> 0) Then
Label4.Visible = True
End If
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
SerialPort1.Open()
End Sub
答案 0 :(得分:1)
我认为您在使用串行端口读取时无法直接访问label4。
尝试将private void grdRead_Loaded(object sender, RoutedEventArgs e)
{
using (var ctx = new EntContext())
{
//What do I write here?
}
}
替换为:
Label4.Visible = True
答案 1 :(得分:1)
@Devcon:不要使用Invoke
,因为它经常会导致死锁,请始终使用BeginInvoke
(我将使用目标控件的方法和属性,而不是表单的属性,但是通常没关系)。
With Label4
If .InvokeRequired Then
.BeginInvoke(Sub() .Visible = True)
Else
.Visible = True
End If
End With