我使用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());

10-08 13:53