ListViewItem の SubItems に Add でサブ項目を追加しようとすると,なぜか SubItems[0] に入れられない。
// 失敗例
ListViewItem item = new ListViewItem();
item.SubItems.Add("hoge");
item.SubItems.Add("piyo");
Console.WriteLine(item.SubItems[0].Text); //
Console.WriteLine(item.SubItems[1].Text); // hoge
最初は Visual C# のバグかと思ったが,MSDN を読んだらそれらしいことが書いてあった。解決法もわかった。サブ項目をコンストラクタに渡せばいい。
// 成功例
ListViewItem item = new ListViewItem(new[] { "hoge", "piyo" });
Console.WriteLine(item.SubItems[0].Text); // hoge
Console.WriteLine(item.SubItems[1].Text); // piyo
ListView.Columns は普通に 0 から Add できるのに,ListViewItem.SubItems はできない。結果ずれる。こういう仕様ってどうなんだろ。
