如何将ListView内容(包括ColumnHeaders)保存到文本文件?
感谢。
答案 0 :(得分:2)
.NET中没有任何内容可以帮助您,您需要自己完成这项工作。
在任何触发保存的事件上:打开文件,遍历列表内容,将文本写入文件,然后关闭文件。关闭当然可以通过using
:
using (var tw = new StreamWriter(filename)) {
foreach (ListViewItem item in listView.Items) {
tw.WriteLine(item.Text);
}
}
答案 1 :(得分:2)
如果要导出所有子项,则必须使用以下代码:
StringBuilder sb;
if (listView.Items.Count > 0)
{
// the actual data
foreach (ListViewItem lvi in listView.Items)
{
sb = new StringBuilder();
foreach (ListViewItem.ListViewSubItem listViewSubItem in lvi.SubItems)
{
sb.Append(string.Format("{0}\t", listViewSubItem.Text));
}
sw.WriteLine(sb.ToString());
}
sw.WriteLine();
}
答案 2 :(得分:0)
这应该100%工作,我为我的一个项目做了这个。 我知道这已经晚了4年,但现在已经来了。
private void export2File(ListView lv, string splitter)
{
string filename = "";
SaveFileDialog sfd = new SaveFileDialog();
sfd.Title = "SaveFileDialog Export2File";
sfd.Filter = "Text File (.txt) | *.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
filename = sfd.FileName.ToString();
if (filename != "")
{
using (StreamWriter sw = new StreamWriter(filename))
{
foreach (ListViewItem item in lv.Items)
{
sw.WriteLine("{0}{1}{2}", item.SubItems[0].Text, splitter, item.SubItems[1].Text);
}
}
}
}
}