C# - Daten über Event? An Klasse übergeben

Gast #4803018
Lesenswert?

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.
Gast #4803058
Lesenswert?

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?
Gast #4803076
Lesenswert?

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).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren