yannick-server
Goto Top

Serielle Schnitstelle auslesen und in Textbox schreiben

Guten Abend zusammen,
ich würde gerne mit VB eine Serielle schnitstelle auslesen. In meinem Formular ist eine Textbox "Output", sie soll die Empfangen Daten immer anzeigen.
Das Passende Script habe ich schon auf der seite con MSDN gefunden, es funktioniert auch soweit.
Sobald die Software über die Serielle Schnittstelle Daten empfängt, kann ich sie mir über eine MsgBox anzeigen lassen,
nur das schreiben der Daten in die Textbox funktioniert einfach nicht.
Hier mal der Code:
Private Shared Sub DataReceivedHandler(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
        Dim indata As String = _serialport.ReadLine()
        Form1.tb_output.AppendText(indata) //<-Das hier Funktioniert nicht
        MsgBox(indata) //<-Gibt mir die Daten aus
    End Sub
Ich hoffe jemand kennt die Lösung für dieses Problem.
Schonmal Danke.

schönen Abend & Gruß
Yannick

Content-ID: 177207

Url: https://administrator.de/contentid/177207

Ausgedruckt am: 24.11.2024 um 14:11 Uhr

yannick-server
yannick-server 04.12.2011 um 14:31:10 Uhr
Goto Top
Hallo,
ich habe bereits weiter nach ein Lösung gesucht, aber es funktioniert einfach nicht.
Ich habe das Debugging angeworfen und eine Überwachung der Variable "indata" hinzugefügt. Ergebnis:
Die Variablenüberwachung zeigt für "indata" immer die richtigen Daten an, aber trotz dem landet nichts in der Textbox.
Keiner eine Idee wo der Fehler liegen könnte?

Gruß
Yannick
yannick-server
yannick-server 27.12.2011 um 17:40:38 Uhr
Goto Top
Suche immer noch nach einer Lösung.
yannick-server
yannick-server 29.12.2011 um 10:44:57 Uhr
Goto Top
Hi,
über ein anderes Forum bin ich auf die Lösung gekommen, ich möchte meine Lösung auch hier kundtun.

So funktioniert es:
Private Shared frm1 As Form1

    Public Shared Sub transfer(ByVal ff As frm_main)  ' ttt.transfer(Me) von Form1 aus aufrufen  
        frm1 = ff
    End Sub

    Private Shared Sub DataReceivedHandler(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
        Dim indata As String = _serialport.ReadLine()
        frm1.tb_output.Text = indata & vbCrLf & frm1.tb_output.Text
    End Sub


Aus der Form1 muss klasse.transfer_form(Me) aufgerufen werden.

Gruß
Yannick