将列表框的项目保存到文本文件

时间:2010-02-19 00:28:45

标签: c# listbox text-files

如何使用listboxSaveFileDialog项目的内容保存到文本文件中?

我还想在文本文件中添加其他信息,并在成功时添加MessageBox说明保存。

5 个答案:

答案 0 :(得分:3)

这应该这样做。

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog f = new OpenFileDialog();

    f.ShowDialog();                 

    ListBox l = new ListBox();
    l.Items.Add("one");
    l.Items.Add("two");
    l.Items.Add("three");
    l.Items.Add("four");

    string textout = "";

    // assume the li is a string - will fail if not
    foreach (string li in l.Items)
    {
        textout = textout + li + Environment.NewLine;
    }

    textout = "extra stuff at the top" + Environment.NewLine + textout + "extra stuff at the bottom";
    File.WriteAllText(f.FileName, textout);

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

答案 1 :(得分:3)

        var saveFile = new SaveFileDialog();
        saveFile.Filter = "Text (*.txt)|*.txt";
        if (saveFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            using (var sw = new StreamWriter(saveFile.FileName, false))
                foreach (var item in listBox1.Items)
                    sw.Write(item.ToString() + Environment.NewLine);
            MessageBox.Show("Success");
        }

另请注意,StreamWriter的类型为Encoding

答案 2 :(得分:1)

SaveFileDialogShowDialog()一起使用以向用户显示,如果成功,则使用其OpenFile()获取您编写的(文件)Stream至。 msdn page上有一个例子。

可以通过ListBox属性访问Items,该属性只是其中项目的集合。

答案 3 :(得分:0)

保存

   // fetch the selected Text from your list
   string textToRight = listBox1.SelectedItem.ToString();  

   // Write to a file       
   StreamWriter sr = File.CreateText(@"testfile.txt");       
   sr.Write(textToRight);
   sr.Close();

消息

   // display Message
   MessageBox.Show( "Information Saved Successfully" ); 

答案 4 :(得分:0)

你有一些事情发生 - 确保你将它们分开,例如

  • 获取列表框内容
  • 附加信息
  • 写文件

请注意!! 保存文件时可以获得无数例外,请参阅文档并以某种方式处理它们......

// Get list box contents
var sb = new StringBuilder();
foreach (var item in lstBox.Items)
{
    // i am using the .ToString here, you may do more
    sb.AppendLine(item);
}
string data = sb.ToString();

// Append Info
data = data + ????....

// Write File
void Save(string data)
{
    using(SaveFileDialog saveFileDialog = new SaveFileDialog())
    {
        // optional
        saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);

        //saveFileDialog.Filter = ???;

        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            File.WriteAllText(saveFileDialog.Filename);
            MessageBox.Show("ok", "all good etc");
        }
        else
        {
        // not good......
        }
    }
}