2017-04-01 74 views
3

我可以使用「StreamWriter」功能將文本保存到ListBox中嗎?如何保存ListBox中的文本?

private void button3_Click(object sender, EventArgs e) 
     { 

      SaveFileDialog saveFile1 = new SaveFileDialog(); 
      saveFile1.DefaultExt = "*.txt"; 
      saveFile1.Filter = "Text files|*.txt"; 
      if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && 
      saveFile1.FileName.Length > 0) 
      { 
       using (StreamWriter sw = new StreamWriter(saveFile1.FileName, true)) 

       { 
        sw.WriteLine(listBox1.Text); 
        sw.Close(); 
       } 
+0

這是列表框中的所有項? –

回答

1

您應該使用字符串列表框的SelectedItem

using (StreamWriter sw = new StreamWriter(saveFile1.FileName, true)) 
    { 
     sw.WriteLine(listBox1.GetItemText(listBox1.SelectedItem)); 
     sw.Close(); 
    } 
+0

它仍然沒有幫助,不保存文本。 –

+0

你看到價值被傳遞了嗎? – Sajeetharan

+0

現在工作嗎? – Sajeetharan

0

如果你想使用的StreamWriter,循環,以節省您的列表框中的所有項目通過所有項目,並把它傳遞一個字符串或StringBuilder的然後把它寫在你的文件上:

using (StreamWriter sw = new StreamWriter(saveFile1.FileName, true)) 
    { 
     string text = ""; 
     foreach (var item in listBox1.Items) 
     { 
     text += item.ToString() + Environment.NewLine; //I added new line per list. 
     } 
    sw.WriteLine(text); 
    sw.Close(); 
    } 

如果你想改爲選中的文本,你可以使用SelectedItem:

using (StreamWriter sw = new StreamWriter(saveFile1.FileName, true)) 
     { 
     sw.WriteLine(listBox1.SelectedItem); 
     sw.Close(); 
     } 
2

屬性ListBox.Text僅適用於所選項目。我懷疑你需要所有的元素。如果存儲ListBox行,則可以這樣做:

File.WriteAllLines(saveFile1.FileName, listBox1.Items.OfType<string>()); 
相關問題