我使用openFileDialog从文本文件中读取并在列表框中打印值,并使用saveFileDialog将更改保存在textfile中。我编写了这段代码,但它不起作用。如果使用文本框更改列表框可以正常工作。我需要打印并将项目保存到listbox.any建议吗?
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
label7.Text = openFileDialog1.FileName;
listBox1.Text = File.ReadAllText(label7.Text);
}
}
private void button5_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
File.WriteAllText(saveFileDialog1.FileName, listBox1.Text);
}
}
最佳答案
您需要将文件的每一行添加为列表框项。然后,要保存,请遍历每个列表框项目并将其写为新行。
您可以使用File.ReadAllLines和listBox1.Items.AddRange添加项目。
listBox1.Items.AddRange(File.ReadAllLines(openFileDialog1.FileName));
由于Items属性包含对象,而不是字符串,因此您将需要手动遍历项目并将其分别写入...也许做类似
StringBuilder sb = new StringBuilder();
foreach(object item in listBox1.Items) {
sb.AppendLine(item.ToString();
}
File.WriteAllText(saveFileDialog1.FileName, sb.ToString());