[C#] SubItems[0] がなぜか埋まってる

Thursday, October 4, 2012

2012100401.png

ListViewItemSubItemsAdd でサブ項目を追加しようとすると,なぜか 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 はできない。結果ずれる。こういう仕様ってどうなんだろ。

コメントを残す

メールアドレスが公開されることはありません。

6 − 4 =