添加到列表视图列不会增加列计数

本文关键字:增加 列表 视图 添加 | 更新日期: 2023-09-27 17:50:15

>我使用 VS 2013 设计器创建了一个表单。
我添加了一个列表视图控件,并通过"属性"窗口添加了 13 列。
然后,我用 C# 编写了一个程序,并且能够使用该项访问所有这些列。子项[N] 构造。 此外,所有这些列标题都显示在窗体的列表视图中。

后来我添加了 2 个新列。 新列显示在列表视图中,但在我尝试访问它们时会抛出无效的索引错误。 此外,SubItems.Count 不反映集合中列的增加。 我也注意到,在表格中。设计器.cs文件,这些新列不存在。

如何确保设计器文件得到更新,并将我的新列添加到集合中? (注意:这与"逐一关闭"错误或索引编号错误无关(提前谢谢。

添加到列表视图列不会增加列计数

这种行为的原因是ListView Columns没有像TableDataGridView那样为您提供常规矩阵或网格。

相反,它们就是你所说的"锯齿数组">,意思是,并非所有行都有相同数量的列。

因此,虽然您提供/增加了ListView将显示的最大Columns数,但每个ItemSubItems数仅与您添加的一样多。

如果在运行时添加Columns,则可以显示和访问添加的SubItems,但只能在实际将它们添加到Item的位置。在添加额外的SubItems之前,它们不存在!

这与DataGridView不同,在中,您可以自由地为每个Cell赋值,包括那些属于您在上一行代码中创建Columns值。

这与两种类型的数组非常相似,交错数组和多维数组。

但回到你的标题:实际listView.Columns.Count增加了;没有的是任何项目的ListViewItem.SubItems.Count