Entwickler-Ecke
WinForms - Listeneintrag aus einer anderen Klasse raus löschen
mariot - Mo 02.07.07 12:43
Titel: Listeneintrag aus einer anderen Klasse raus löschen
Hallo,
Ich muss für meine Schule ein Programm schreiben, wo ich aus einer Listbox eine Text Datei auswählen kann, welche dann in eine Textbox ausgelesen wird. Der Auslöser dazu ist ein Menü Eintrag. Desweiteren müssen wir eine Fehlermeldung ausgeben, wenn die Datei nicht vorhanden ist, darauf soll dann der Eintrag aus der Listbox gelöscht werden. Und hier liegt auch mein Problem, wie ich dan den Eintrag aus der Liste wieder gelöscht kriege :P
Das ist meine Klasse TextDatei, welche ich zum Auslesen benutze.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| class TextDatei { public string ReadFile(String sFilename) {
string sContent = "";
if (File.Exists(sFilename)) { StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default); sContent = myFile.ReadToEnd(); myFile.Close(); } else { sContent = "Ihre Datei konnte nicht gefunden werden."; }
return sContent;
} } |
Hier ist der Quellcode von dem Menu Eintrag der als Auslöser dient:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| private void dateiAnzeigenToolStripMenuItem_Click(object sender, EventArgs e) {
TextDatei o_textdatei = new TextDatei(); try { string fs = o_textdatei.ReadFile(lsbDateien.SelectedItem.ToString()); txtAnzeige.Text = fs; } catch { txtAnzeige.Text = "Bitte wählen Sie einen Eintrag aus der Liste aus"; } } |
JüTho - Mo 02.07.07 13:07
Hallo,
mit folgenden Begriffen solltest Du Erfolg haben:
ListBox - Items - RemoveAt
Gruß Jürgen
mariot - Mo 02.07.07 13:19
Hallo Jürgen,
Danke für den Richtigen Befehl. Jetzt müsst ich nur noch wissen wo ich den einbinden kann. Am logischsten erscheint es mir in der else Schleife von meiner TextDatei Klasse, doch kann ich den Befehl ja nicht einfach so dort reinschreiben. Kann mir vielleicht jemand auf mein Bsp. bezogen sagen wie ich aus einer Klasse raus auf die Eigenschaften meiner Forms zugreifen kann?
greetz
Mario
JüTho - Mo 02.07.07 14:29
Hallo Mario,
für meinen Geschmack macht die Klasse TextDatei das Ganze komplizierter als nötig. Aber es kann natürlich sein, dass die Aufgabenstellung so etwas erfordert.
Konkret glaube ich, dass die folgende Stelle am besten passt:
C#-Quelltext
1: 2: 3: 4: 5:
| string fs = o_textdatei.ReadFile(lsbDateien.SelectedItem.ToString()); if (String.IsNullOrEmpty(fs)) else txtAnzeige.Text = fs; |
Gruß Jürgen
mariot - Mo 02.07.07 15:29
Hi Jürgen,
Danke nochmal für die Hilfe, die Stelle war die richtige, nur hab ichs mal mit meiner eigenen Methode versucht :P
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| if (!File.Exists(lsbDateien.SelectedItem.ToString())) { txtAnzeige.Text = fs; lsbDateien.Items.RemoveAt(lsbDateien.SelectedIndex); } else { txtAnzeige.Text = fs; } |
greetz
Mario
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!