如何使用listbox
将SaveFileDialog
项目的内容保存到文本文件中?
我还想在文本文件中添加其他信息,并在成功时添加MessageBox
说明保存。
答案 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)
SaveFileDialog
与ShowDialog()
一起使用以向用户显示,如果成功,则使用其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......
}
}
}