使用DataReceivedHandler打开VB表单

时间:2018-08-25 17:01:48

标签: .net vb.net visual-studio

我的程序通过COM端口从外部设备接收数据。

我通过以下方式初始化COM端口连接:

Public Sub InitializeReader()
   AddHandler comPort.DataReceived, AddressOf DataReceivedHandler
   comPort.Open()
End Sub

我通过以下方式从设备/端口接收数据:

Public Sub DataReceivedHandler(sender As Object, e As SerialDataReceivedEventArgs)
   IncomingData = comPort.ReadLine()
End Sub

我想在读取芯片后打开一个Windows窗体。但是,当我使用DataReceivedHandler Sub这样做时,我的程序停止响应。

所以,类似这样会使程序崩溃:

Public Sub DataReceivedHandler(sender AS Object, e As SerialDataReceivedEventArgs)
   IncomingData = comPort.ReadLine()
   If FormOpen = False Then
       FormOpen = True
       NewForm.Visible = True
   End If
End Sub

如果我改为将NewForm.Visible = True更改为NewForm.ShowDialog(),则可以正常使用。但是,我需要用户与新表单进行交互的时间超过一个事件。

我已经确认“ NewForm”可以正常工作。没有什么问题。如果我在程序的其他位置(但在DataReceivedHandler子菜单中为 not )打开表单,则效果很好。

有人知道我为什么会遇到这个问题吗?

0 个答案:

没有答案