列表视图- System.ArgumentOutOfRangeException
listview- System.ArgumentOutOfRangeException
我有一个包含 7 列的列表视图。我想在每一列上添加信息,但是当它从 listView 到达子项 2 时,我得到一个 System.ArgumentOutOfRangeException
,即使我有那个子项。
知道为什么会出现此错误吗?我试图搜索它,但没有找到类似的案例。
这是我收到该错误的代码部分:
if (seen == true)
listView1.SelectedItems[0].SubItems[2].Tag = "Seen";
else
listView1.SelectedItems[0].SubItems[2].Tag = "Not Seen";
您可能在 每个 项目中没有 所有 那些子项目。
或者什么都没有选择? (注意 SelectionChanged
事件在 Item
被 未选择 时被调用!)
请注意,ListView
中的每个 Item
都可以有 自己的 子项 数量 ,无论您创建了多少个 Columns
。这些只提供 space 到 显示 数据,而不是您可以在不创建 SubItems
!
的情况下访问的插槽
所以访问前一定要测试一下!换句话说:ListView
结构 不是二维数组而是锯齿状数组!
这可能是一个可能的检查..:[=21=]
if ( listView1.SelectedItems[0].Count > 0 &&
listView1.SelectedItems[0].SubItems.Count > 2 )
listView1.SelectedItems[0].SubItems[2].Tag = seen ? "Seen" : "Not Seen";
..但是您更了解您的代码,并且很可能会找到一种更好的方法来进行必要的测试..
只是不要依赖 SubItems
的数量等于 Columns
的数量。它们根本没有关系,其中一个可能在每个 Item
!
中更大
我有一个包含 7 列的列表视图。我想在每一列上添加信息,但是当它从 listView 到达子项 2 时,我得到一个 System.ArgumentOutOfRangeException
,即使我有那个子项。
知道为什么会出现此错误吗?我试图搜索它,但没有找到类似的案例。 这是我收到该错误的代码部分:
if (seen == true)
listView1.SelectedItems[0].SubItems[2].Tag = "Seen";
else
listView1.SelectedItems[0].SubItems[2].Tag = "Not Seen";
您可能在 每个 项目中没有 所有 那些子项目。
或者什么都没有选择? (注意 SelectionChanged
事件在 Item
被 未选择 时被调用!)
请注意,ListView
中的每个 Item
都可以有 自己的 子项 数量 ,无论您创建了多少个 Columns
。这些只提供 space 到 显示 数据,而不是您可以在不创建 SubItems
!
所以访问前一定要测试一下!换句话说:ListView
结构 不是二维数组而是锯齿状数组!
这可能是一个可能的检查..:[=21=]
if ( listView1.SelectedItems[0].Count > 0 &&
listView1.SelectedItems[0].SubItems.Count > 2 )
listView1.SelectedItems[0].SubItems[2].Tag = seen ? "Seen" : "Not Seen";
..但是您更了解您的代码,并且很可能会找到一种更好的方法来进行必要的测试..
只是不要依赖 SubItems
的数量等于 Columns
的数量。它们根本没有关系,其中一个可能在每个 Item
!