0

我在一个 2 列ListView。我的“C:\file.txt”看起来像这样:

1;aaa 
2;bbb
3;ccc 
4;ddd 

等等。(每个数字和文本在单独的行中)我的代码:

FileStream spis = File.Open("C:\\file.txt", FileMode.Open, FileAccess.Read);
StreamReader yaRead = new StreamReader(spis);
string yaView = yaRead.ReadToEnd();
yaRead.Close();
spis.Close();
String[] yaArray = yaView.Split(new char[] {';'});
foreach (string ya in yaArray)
{
    listView1.Items.Add(ya);
}

结果

1
aaa
bbb
(...)

...在第一列中,在第二列中没有任何内容。请帮我修复它。

4

2 回答 2

2

您可以通过ListViewItem的 SubItems 属性将列添加到列表视图。

最简单的方法是执行以下操作:

ListViewItem newItem = new ListViewItem("1");
newItem.SubItems.Add("aaa");
listView1.Items.Add(newItem);

如果我们以您的为例,我们可以简单地执行以下操作:

string[] yaArray = yaView.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 

这将为您提供一个如下所示的数组:

[1;aaa]
[2;bbb]
[3;ccc]
[4;ddd]

我们根据新行而不是分号进行拆分。

然后只需执行以下操作:

foreach(string lineItem in yaArray)
{
  string[] listViewRow = lineItem.Split(new string[] { ";" }, StringSplitOptions.None); //Now we split on the semi colon to give us each item
  ListViewItem newItem = new ListViewItem(listViewRow[0]);
  newItem.SubItems.Add(listViewRow[1];
  listView1.Items.Add(newItem);
}

那应该给你你想要的。

于 2012-05-03T21:49:47.063 回答
0

请将 SUBitems 添加到列表中

foreach(var line in File.ReadAllLines(@"C:\file.txt"))
{
  listView1.Items.Add(line.Split(';'));
}
于 2012-05-03T21:50:39.257 回答