schanuggi - Di 17.11.09 17:15
Titel: ListBox füllen
Hallo,
ich bin absoluter Neuling in c# und mir macht etwas zu schaffen:
Kurz mein Augbau:
Ich habe zwei Benutzersteuerelemente und zwei Klassen. Das eine Benutzersteuerelement besitzt eine TextBox und einen Button und das andere Benutzersteuerelement eine ListBox und ebenfalls einen Button.
Die erste Klasse „Liste“ beinhaltet Methoden zur Bearbeitung der Liste. Die zweite Klasse dient zur Vorlage für Objekte, die erzeugt werden. Die Liste soll vom Typ der zweiten Klasse „Daten“ sein, in der es vorerst nur eine Eigenschaft für den Namen gibt.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| class Liste { private List<Daten> mliste;
public Liste() { mliste = new List<Daten>(); }
public void Add(Daten p) { mliste.Add(p); }
public Daten Item(int index) { return mliste[index]; }
public int Length { get { return mliste.Count; } }
} |
Ich will jetzt, dass wenn ich auf den ersten Button des ersten Benutzersteuerelement drücke, dass der Inhalt der TextBox in die Liste aus der Klasse „Liste“ gespeichert wird.
C#-Quelltext
1: 2: 3: 4: 5:
| private void button1_Click(object sender, EventArgs e) { Liste liste = new Liste(); liste.Add(new Daten(textBox1.Text)); } |
Wenn ich auf den zweiten Button drücke, soll der gesamte Inhalt der Liste ausgegeben werden.
Ich habe immer noch Probleme mit objektorientierten Denken, aber vielleicht versteht jemand, auf was ich hinaus will und kann mir helfen. Dankeschön
Moderiert von
Christian S.: C#-Tags hinzugefügt
JüTho - Di 17.11.09 17:38
Hallo und :welcome:
schanuggi hat folgendes geschrieben : |
ich bin absoluter Neuling in c# und mir macht etwas zu schaffen: |
Mir macht es zu schaffen, deinen Text zu lesen. Bitte
formatiere den Code als solchen. Das kannst du auch nachträglich erledigen: Schere-Button, Code-Text markieren, "Bereiche" öffnen, C# auswählen, Plus-Button drücken, Absenden.
schanuggi hat folgendes geschrieben : |
Ich will jetzt, dass wenn ich auf den ersten Button des ersten Benutzersteuerelement drücke, dass der Inhalt der TextBox in die Liste aus der Klasse „Liste“ gespeichert wird. |
Das geht im Prinzip fast so wie von dir vorbereitet:
schanuggi hat folgendes geschrieben : |
C#-Quelltext 1: 2: 3: 4: 5:
| private void button1_Click(object sender, EventArgs e) { Liste liste = new Liste(); liste.Add(new Daten(textBox1.Text)); } | |
Aber du darfst dort
keine neue Liste erzeugen, sondern musst die vorhandene benutzen.
schanuggi hat folgendes geschrieben : |
Ich habe immer noch Probleme mit objektorientierten Denken, |
An dieser Stelle denkst du zu kompliziert. Eine List<T> kennt bereits eine Add-Methode, ebenso IndexOf und Item und vieles andere mehr. Ich kann also überhaupt nicht erkennen, dass du für die Liste eine eigene Klasse machen willst.
schanuggi hat folgendes geschrieben : |
aber vielleicht versteht jemand, auf was ich hinaus will und kann mir helfen. Dankeschön |
Nein, wirklich verstehen kann ich nichts. Aber mit allen anderen Gedanken zusammen schlage ich vor: Erstelle innerhalb des Formulars eine solche Liste und benutze diese für alle Anzeigen.
Wenn du mehr Informationen über die Daten-Struktur gibst, kann vielleicht noch konkreter geantwortet werden.
Gruß Jürgen