Hallo, ich lese Daten vom Seriellen Port in der Klasse SeriellPortInterface aus: private void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; this.indata = sp.ReadExisting(); } diese Daten möchte ich in einer RichTextBox ausgeben ausgeben. Die Daten müssen also in die Klasse "public partial class SeriellData : Form" gelangen. Ich bin mir nicht sicher welcher EventHandler der richtige hierfür ist. Mit Invoke bin ich bei der zusätzlichen Klasse nicht weiter gekommen. Vielen Dank.
In welcher Klasse ist denn deine Callback der seriellen? Im Grunde kannst du dein eigenes Event in der Klasse erstellen und das abonnierst du dann in deiner Form Klasse. siehe https://msdn.microsoft.com/de-de/library/8627sbea.aspx
Vielen Dank für die Antwort. Ich denke das ist der richtige Weg, welchen du vorgeschlagen hast. "public class SampleEventArgs" ist in diesem Fall meine Form Klasse und "public class Publisher" meine _seriellPort Klasse?
Kiki schrieb: > Vielen Dank für die Antwort. > Ich denke das ist der richtige Weg, welchen du vorgeschlagen hast. > > "public class SampleEventArgs" ist in diesem Fall meine Form Klasse Nicht ganz; per SampleEventArgs werden die Daten weitergegeben. Bei dir also der Text, der in der RichTextBox ausgegeben werden soll. Da passt das Beispiel sogar: ... public String Text {get; private set;} Es handelt sich also nur eine Art (meist sehr einfache) "Hilfsklasse", die die vom Publisher zum Subscriber transportierten Daten kapselt. > und "public class Publisher" meine _seriellPort Klasse? Ja. Du hast also drei Komponenten: Deine Form (der "Subscriber", welcher in dem Beispiel fehlt), _seriellPort (der Publisher) sowie deine von EventArgs abgeleitete Klasse. Der Subscriber meldet sich beim Publisher an und erhält dann später - eben wenn Events auftreten - jeweils über eine Instanz deiner EventArgs-Subklasse die nötigen Informationen (in deinem Fall also einen String, den du in der Textbox anzeigen lassen kannst). Es ginge auch ganz ohne eigene EventArgs-Subklasse, allerdings lassen sich dann keine spezifischen Infos mitschicken (man weiß dann bloß, dass ein Event aufgetreten ist, was manchmal ja ausreicht).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.