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
(...)

...最初の列にあり、2 番目の列には何もありません。修正を手伝ってください。

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

サブアイテムをリストに追加してください

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