Hallo zusammen, ich will Daten die auf dem SerielPort ankommen in einer TextBox Anzeigen. Das sollte doch mit Delegate und Invoke klappen, nur leider bei mir nicht. Habe folgeden Code
Für das UserControl ComLog mit der Textbox (TB_Comolog)
Die SerialCommunication Klasse
Ansich wird auch die Sub "appendToCommLog" auffgerufen, es wird aber nie der IF Zweig durchlaufen sondern immer nur der Else Zweig, im mBuffer steht auch das was über die Serielle gesendet wurde. Nur die TextBox will es nicht anzigen.
Hat jemand eine Idee, was ich falsch mache?
Schon mal vielen Dank im vorraus.
Für das UserControl ComLog mit der Textbox (TB_Comolog)
Code:
Public Class CommLog Delegate Sub SetTextCallback([text] As String) Sub appendToCommLog(ByVal Buffer As String) If TB_CommLog.InvokeRequired Then Dim d As New SetTextCallback(AddressOf appendToCommLog) Me.Invoke(d, New Object(), {[Text]}) Else TB_CommLog.AppendText([Text]) End If End SUB End Class
Code:
Imports System.IO Imports System.IO.Ports Imports System.Threading.Thread Public Class SerialCommunication '....Vorweg wird hier der Comport Definert, das klappt auch alles Private Sub resiveMessage(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles COMPort.DataReceived Dim strData As String = "" If COMPort.IsOpen Then strData = COMPort.ReadExisting Form1.CommLog1.appendToCommLog(strData) End If End Sub End Class
Hat jemand eine Idee, was ich falsch mache?
Schon mal vielen Dank im vorraus.