Denke versteh die Umstellung von VB6 auf Vb net nicht ganz
Zustand:
Ich starte mein Projekt mit dem Form "start"
in diesem Form "start" öffne ich einen SerialPort um lesen ob ein Input kommt
Gleichzeitig wird im form "start" ein form "Login" aufgerufen
das form "start" wird nicht geschlossen
jetzt kommt via SerialPort eine Input, jetzt müsste das "Login" geschlossen werden und eine neues Form "erfassen" geöffnet werden.
Nun hab ich das Problem dass beim Input auf dem Serial Port das Form nicht geschlossen (hide) wird oder stehts folgende Fehlermeldung kommt
"Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement Login erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."
Kann mir jemand da weiterhelfen, ich bin am Verzweifeln! Danke
Code wäre ungefähr so:
Dim frmLogin As New login
dim frmErfassen as new erfassen
Private Sub start_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
call fcOpenSerial
frmLogin.show
End Sub
Private Sub fcOpenSerial
SerialPort1.PortName = "COM16"
.
.
.
SerialPort1.Open()
AddHandler SerialPort1.DataReceived, AddressOf DataReceivedHandler
END SUB
Private Sub DataReceivedHandler(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
Dim sp As SerialPort = CType(sender, SerialPort)
Dim indata As String = sp.ReadExisting()
Dim formTitles As New Collection
If Len(indata) > 5 Then
frmErfassen.show
frmlogin.hide *** Hier Kommst der Fehler!!!!
end if
End SUb
Zustand:
Ich starte mein Projekt mit dem Form "start"
in diesem Form "start" öffne ich einen SerialPort um lesen ob ein Input kommt
Gleichzeitig wird im form "start" ein form "Login" aufgerufen
das form "start" wird nicht geschlossen
jetzt kommt via SerialPort eine Input, jetzt müsste das "Login" geschlossen werden und eine neues Form "erfassen" geöffnet werden.
Nun hab ich das Problem dass beim Input auf dem Serial Port das Form nicht geschlossen (hide) wird oder stehts folgende Fehlermeldung kommt
"Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement Login erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."
Kann mir jemand da weiterhelfen, ich bin am Verzweifeln! Danke
Code wäre ungefähr so:
Dim frmLogin As New login
dim frmErfassen as new erfassen
Private Sub start_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
call fcOpenSerial
frmLogin.show
End Sub
Private Sub fcOpenSerial
SerialPort1.PortName = "COM16"
.
.
.
SerialPort1.Open()
AddHandler SerialPort1.DataReceived, AddressOf DataReceivedHandler
END SUB
Private Sub DataReceivedHandler(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
Dim sp As SerialPort = CType(sender, SerialPort)
Dim indata As String = sp.ReadExisting()
Dim formTitles As New Collection
If Len(indata) > 5 Then
frmErfassen.show
frmlogin.hide *** Hier Kommst der Fehler!!!!
end if
End SUb