2013-12-15 12 views
5

Vor kurzem habe ich bisher recht C# genießen und teste ich nur mit ihm, aber es scheint ein Teil zu sein, die ich nicht bekommen.C# Speichern alle Elemente in einem ListBox Textdatei

Im Grunde will ich es so, dass wenn ich die SAVE-Schaltfläche klicken müssen alle Elemente im Listenfeld in einer Textdatei speichern. Momentan kommt in der Datei nur System.Windows.Forms.ListBox+ObjectCollection auf.

Hier ist, was ich bisher habe. Mit dem SaveFile.WriteLine(listBox1.Items); Teil habe ich versucht, viele verschiedene Methoden einzusetzen und ich kann es nicht herausfinden. Denken Sie auch daran, dass ich im Endprodukt meines Programms es gerne zu dieser Textdatei zurücklesen und ausgeben würde, was in der Textdatei zur Listbox gehört, wenn das nicht möglich ist dann mein Schlechter, ich bin neu dazu C#, nachdem alle;)

private void btn_Save_Click(object sender, EventArgs e) 
{ 
    const string sPath = "save.txt"; 

    System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath); 
    SaveFile.WriteLine(listBox1.Items); 
    SaveFile.ToString(); 
    SaveFile.Close(); 

    MessageBox.Show("Programs saved!"); 
} 

Antwort

9

aus dem Code

SaveFile.WriteLine (ListBox1.Items);

Ihr Programm dies tatsächlich tut:

SaveFile.WriteLine(listBox1.Items.ToString()); 

Die .ToString() Methode der Items Sammlung gibt den Typ Name der Sammlung (System.Windows.Forms.ListBox+ObjectCollection), da dies die Standard .ToString() Verhalten ist, wenn die Methode nicht außer Kraft gesetzt wird.

Um die Daten in einer sinnvollen Art und Weise zu speichern, müssen Sie Trog Schleife jedes Element und schreiben Sie es so, wie Sie benötigen. Hier ist ein Beispielcode, ich gehe davon aus, dass Ihre Artikel die entsprechende .ToString() Implementierung haben:

System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath); 
foreach(var item in listBox1.Items) 
{ 
    SaveFile.WriteLine(item.ToString()); 
} 
6

Items ist eine Sammlung, sollten Sie durch alle Ihre Artikel durchlaufen, sie zu retten

private void btn_Save_Click(object sender, EventArgs e) 
{ 
    const string sPath = "save.txt"; 

    System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(sPath); 
    foreach (var item in listBox1.Items) 
    { 
     SaveFile.WriteLine(item); 
    } 

    SaveFile.Close(); 

    MessageBox.Show("Programs saved!"); 
} 
Verwandte Themen