【发布时间】:2013-09-14 08:19:32
【问题描述】:
使用时
lvi.SubItems.AddRange(new ListViewItem.ListViewSubItem[5]);
Debug.Assert(lvi.SubItems.Count == 5);
assert 失败,lvi.SubItems.Count 为 1,访问lvi.SubItems[1] 失败。
什么?那不应该加5个项目吗?
(澄清一下:我知道我可以使用 Add() 单独添加它们 - 我在问为什么这不起作用)
更大的上下文:listView1 是详细视图中的 winforms 列表视图,添加了 6 列:
public Form1()
{
InitializeComponent();
ListViewItem lvi = new ListViewItem();
listView1.Items.Add(lvi);
int expectedCount = 6;
Debug.Assert(listView1.Columns.Count == expectedCount);
if (lvi.SubItems.Count != expectedCount - 1)
{
lvi.SubItems.Clear();
lvi.SubItems.AddRange(new ListViewItem.ListViewSubItem[expectedCount - 1]);
Debug.Assert(lvi.SubItems.Count == expectedCount - 1);
}
}
(VS Express 2013RC,VS 2008 Pro)
【问题讨论】: