Entwickler-Ecke
Sonstiges (.NET) - Datei auslesen aus Listboxanzeige
interessierter - Mi 07.11.12 16:22
Titel: Datei auslesen aus Listboxanzeige
Hallo Zusammen
Ich bastle einen kleinen Trainings Manager, dazu eine Frage. Mittels eines Klicks auf den Button "alle Profile", werden in einer Listbox alle gespeicherten Benutzerprofile angezeigt. Nun will ich mittels eines Klicks auf einen weiteren Button "Laden" den angewählten Dateipfad aus der Listbox laden und den Inhalt ausgeben.
Wie kann ich den angewählten Pfad (angewählte Datei) in einen string umwandeln um dann den Pdad mittels StreamReader normal auslesen zu können? Oder gibt es einen anderen Weg? Hier mal der Code:
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: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;
namespace Training_Manager { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 neuesProfil = new Form2(); neuesProfil.Show(); }
private void Form1_Load(object sender, EventArgs e) { if (Directory.Exists(@"C:\Users\x\Desktop\Training Manager")) Directory.SetCurrentDirectory(@"C:\Users\x\Desktop\Training Manager"); } private void button2_Click(object sender, EventArgs e) { string verzeichnis; string[] dateiliste; int i;
verzeichnis = Directory.GetCurrentDirectory(); dateiliste = Directory.GetFiles(verzeichnis); listBox1.Items.Clear();
for (i = 0; i < dateiliste.Length; i++) listBox1.Items.Add(dateiliste[i]); }
private void button3_Click(object sender, EventArgs e) {
} } } |
Grüsse
interessierter
interessierter - Mi 07.11.12 17:22
Jetzt hats geklappt. Habe das "toString vergessen" bei meinen zahlreichen Versuchen.
Vielen Dank.
Gruss
Dani
Ralf Jansen - Mi 07.11.12 17:34
ToString mag hier eher zufällig das Richtige liefern aber ToString ist meist falsch da die meisten Klassen bei ToString Debug Informationen liefern nicht den Inhalt. Und wer ToString so überschreibt das es den Inhalt zurück liefert hat entweder den Sinn von ToString oder DataBinding nicht verstanden.
Hier ist der Inhalt der Listbox bereits ein string. ToString an einem String aufzurufen ist blöd du solltest einfach auf einen string casten.
interessierter - Mi 07.11.12 20:05
Was heisst genau auf einen string casten? Hat das etwas mit Konvertieren zu tun?
Ralf Jansen - Mi 07.11.12 22:15
Nein. Casten bedeutet soviel wie Typumwandlung. Das ist üblicherweise kein konvertieren sondern einfach nur das ändern des Typs einer Referenz auf eine Klasse/Instanz.
C#-Quelltext
1: 2:
| object obj = "Hallo Welt"; string str = (string)obj; |
SelectedItem einer Listbox ist erstmal nur als object definiert da man ja alles in einer Listbox darstellen kann nicht nur strings. Hier weist du aber das da strings drin stecken. Also einfach SelectedItem auf string casten.
jochenc - Sa 05.01.13 17:05
Hallo Ralf, ich wußte das auch nicht so genau, ist interessant für mich zu lesen gewesen und hilft mir echt weiter. Vielen Dank dafür, werds gleich umsetzen. Servus bis bald.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!