C# 打开并保存文件对话框
我使用openFileDialog读取文本文件并打印列表框中的值,使用saveFileDialog保存文本文件中的更改。我编写了此代码,但不起作用。如果使用文本框更改列表框,效果很好。但我需要打印项目并将其保存到列表框中。有什么建议吗C# 打开并保存文件对话框,c#,C#,我使用openFileDialog读取文本文件并打印列表框中的值,使用saveFileDialog保存文本文件中的更改。我编写了此代码,但不起作用。如果使用文本框更改列表框,效果很好。但我需要打印项目并将其保存到列表框中。有什么建议吗 private void openFileDialog1_FileOk(object sender, CancelEventArgs e) { } private void button4_Click(object sender
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);
}
}
您需要将文件的每一行作为列表框项添加。然后,为了保存,循环遍历每个listbox项并将其作为新行写入 您可以使用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());
文本仅表示列表框项目的选定部分 来自MSDN文档的报价: 当此属性的值设置为字符串值时,列表框将在列表框中搜索与指定文本匹配的项并选择该项。您还可以使用此属性确定列表框中当前选定的项目 这应该起作用:
using System.Linq;
...
string[] lines = File.ReadAllLines(fileName);
listBox.Items.AddRange(lines.ToArray<object>());
使用System.Linq;
...
string[]lines=File.ReadAllLines(文件名);
listBox.Items.AddRange(lines.ToArray());
ListBox没有文本属性的有意义的实现。改为使用其Items属性。问题是这些项包含字符串,而不是objectsListBox。项是一个ObjectCollection,因此即使这些项是字符串,它们也会作为对象返回,然后必须转换为字符串(或者,您可以使用ToString,它在字符串上返回自身)。你真的试过这个代码吗?