Benutzer mit den meisten Antworten
Aus einer Klasse, Daten an die Form übergeben (C#)

Frage
-
Hallo,
was wäre der einfachste Weg, Daten aus einer Klasse an die Form zu übergeben?
(C#)
Danke für die Info.
- Bearbeitet Danijel Kramar Dienstag, 15. Juli 2014 08:05
Antworten
-
Hallo,
verwendet bitte keine statischen Felder etc. für Dinge die mehrfach vorkommen können. Sinn macht es bei dingen wie der Environment-Klasse, schließlich gibt es nur eine Betriebssystemversion etc.Um Informationen jeder Zeit von Klasse zu Klasse reichen zu können, solltest du ein Event implementieren. Hier ein Beispiel dazu:
class Test{ public EventHandle<MyEventArgs> MyEvent; public void ChangeData(string data){ this.Data=data;//Neuen Wert zuweisen
var evt = this.MyEvent; if(evt!=null)//Ist das Event abonniert? evt(this, new MyEventArgs(){Data=data});//Event auslösen und eine neue Instanz von MyEventArgs mit den geänderten Daten mitgeben } public string Data{get;set;} } //Dient dem transport von Daten im Ereignis class MyEventArgs:EventArgs{ public string Data{get;set;} } //Deine Form, die Test verwendet class Form1:Form{ Test test; public Form1(){ this.test=new Test();//Neue instanz von Test erstellen this.test.MyEvent += test_MyEvent;//Event abonnieren InitialisizeComponent(); } void vutton1_Click(object sender, EventArgs e) { test.ChangeData("Neue Daten");//Testweise die Daten ändern } void test_MyEvent(object sender, MyEventArgs e) { MessageBox.Show("Die Daten wurden geändert:\n" + e.Data); } }Siehe auch: Events Tutorial (Englisch) und Ereignisse (C#-Programmierhandbuch)
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Ionut DumaModerator Dienstag, 5. August 2014 13:36
Alle Antworten
-
Hallo,
verwendet bitte keine statischen Felder etc. für Dinge die mehrfach vorkommen können. Sinn macht es bei dingen wie der Environment-Klasse, schließlich gibt es nur eine Betriebssystemversion etc.Um Informationen jeder Zeit von Klasse zu Klasse reichen zu können, solltest du ein Event implementieren. Hier ein Beispiel dazu:
class Test{ public EventHandle<MyEventArgs> MyEvent; public void ChangeData(string data){ this.Data=data;//Neuen Wert zuweisen
var evt = this.MyEvent; if(evt!=null)//Ist das Event abonniert? evt(this, new MyEventArgs(){Data=data});//Event auslösen und eine neue Instanz von MyEventArgs mit den geänderten Daten mitgeben } public string Data{get;set;} } //Dient dem transport von Daten im Ereignis class MyEventArgs:EventArgs{ public string Data{get;set;} } //Deine Form, die Test verwendet class Form1:Form{ Test test; public Form1(){ this.test=new Test();//Neue instanz von Test erstellen this.test.MyEvent += test_MyEvent;//Event abonnieren InitialisizeComponent(); } void vutton1_Click(object sender, EventArgs e) { test.ChangeData("Neue Daten");//Testweise die Daten ändern } void test_MyEvent(object sender, MyEventArgs e) { MessageBox.Show("Die Daten wurden geändert:\n" + e.Data); } }Siehe auch: Events Tutorial (Englisch) und Ereignisse (C#-Programmierhandbuch)
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Ionut DumaModerator Dienstag, 5. August 2014 13:36