【发布时间】:2016-12-14 20:14:51
【问题描述】:
我正在为自己开发 Winforms 项目,基本上我有一个带有 ListView(listView1) 的表单,我在这个项目上有很多控件和子表单以及诸如此类的东西,无论如何我最初的目标是保存输入的数据将 ListViewItem 转换为“.txt”文件,其中每个项目用逗号 (,) 分隔。
最初这很好用,但是我后来调整了我的应用程序,也将数据添加到每个 listView1.SelectedItem[i].Tag",这也很好用,但我忘了重新审视事物的节省方面...
所以我有这个公式是有人在 StackOverflow 上提交的(对不起,我不知道它是谁,也不记得/找到链接):
private StringBuilder ReadingListView()
{
string delimiter = ",";
List<string> values;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < listView1.Items.Count; i++)
{
values = new List<string>();
for (int j = 0; j < listView1.Items[i].SubItems.Count; j++)
{
values.Add(listView1.Items[i].SubItems[j].Text);
}
sb.AppendLine(string.Join(delimiter, values.ToArray()));
}
return sb;
}
这真的很好,它节省了我很多时间,有人可以举一个例子来说明如何调整它来保存“listView1.Items[i].Tag”吗?我无法让我的大脑发挥作用和锻炼,为什么我不能适应它来支持添加“标签”,这是我已经坚持了几个小时的东西,我知道有一个简单的解决方案,但 ARGH!我一直在尝试很多方法,但不知道该怎么做。
【问题讨论】:
-
我在使用这些方面的东西,但它没有以正确的顺序在 txt 文件中添加“标签”:values.Add(listView1.Items[i].Tag.ToString()) ;只需将其添加到 values.Add(listView1.Items[i].SubItems[j].Text);不会以正确的顺序将其放入文本文件中,由于循环,它还将不断重复“标记”每个子项出现的相同次数。在“for循环”下面添加它效果很好,它在脚本末尾添加了一个“标签”,失败是我希望它成为脚本中的第二项而不是最后一项。
-
那么,数据的预期顺序是什么?你能举个例子吗? listItems 长什么样子,txt 文件长什么样子?
-
所以我决定将特定项目添加到一个数组中,这样我就可以在 txt 文件中按顺序排列它们。
标签: c# winforms listviewitem