Ich mache ein serielles Kommunikationsprojekt und möchte die empfangene Zeichenfolge in ein Textfeld eingeben, basierend auf welcher Schaltfläche geklickt wurde, um die anfängliche Zeichenfolge zu senden und eine Antwort aufzurufen.Wie wird empfangener serieller Text in mehrere Textfelder eingefügt?
Der Code für die ReceivedText ist:
PrivateSub ReceivedText(ByVal [text] As String)
Button1.Clear()
Button2.Clear()
If Button1.InvokeRequired Then
RichTextBox1.text = [text].Trim("!")
End If
If Button2.InvokeRequired Then
RichTextBox2.Text = [text].Trim("!")
End If
EndSub
Dies führt nur in den empfangenen String in gehen beide der Boxen anstelle einer oder der anderen Seite.
Gibt es eine Möglichkeit, den Text in das entsprechende Feld zu bekommen?
Was soll Ihre Clear-Methode tun? Das ist kein Mitglied eines Standardschaltflächentyps. Wenn Sie jedoch nicht vom Antworttext unterscheiden können, welcher Button gedrückt wurde, dann sehe ich zumindest ein paar Optionen. Am einfachsten ist eine öffentliche Variable, die festhält, auf welche Schaltfläche geklickt wurde. – topshot
Dies funktioniert jedoch nicht, wenn Sie beide Tasten gleichzeitig drücken können oder bevor eine Antwort von einem vorherigen Befehl gelesen wird. Wenn das eine Voraussetzung ist, dann würden Sie für jeden Tastendruck einen Thread starten und eine Klasse übergeben, die den Button-Namen und den Befehl enthält, wie die akzeptierte Antwort unter http://stackoverflow.com/questions/30162382/how-cani- create-a-new-thread-adressevon-a-funktion-mit-parameter-in-vb, damit du den Namen nach dem Abschluss lesen kannst. – topshot
@tophot Ich habe die Clear-Methode korrigiert und in die entsprechende Zeile eingefügt. Ich bin sehr neu und bin nicht vertraut mit Threading, gibt es ein Beispiel, das Sie zur Verfügung stellen können? Ich könnte mir vorstellen, dass es ziemlich einfach ist, eine empfangene Zeichenfolge an einer bestimmten Stelle zu platzieren, je nachdem, auf welche Schaltfläche geklickt wurde ... –