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
はできない。結果ずれる。こういう仕様ってどうなんだろ。