【发布时间】:2011-10-24 03:46:32
【问题描述】:
我创建了一个包含 8 列的 Listview 控件。当我需要从 Item 的子项中检索文本时,我使用以下代码:
foreach (ListViewItem item in listViewStatus.Items)
{
if (item.Tag == f)
{
/* Use locking to synchronise across mutilple thread calls. */
lock (_lockObject)
{
item.SubItems[6].Text = Status;
}
break;
}
}
它显示一个异常。但是当我用 item.SubItems[5].Text 替换 item.SubItems[6].Text 时,它可以工作。我该如何解决这个问题?
【问题讨论】:
-
查看item.SubItems有多少次?也许是 item.SubItems.Count()?
-
它显示 6。但我有 8 列
-
哦。当我创建子项时,我只创建 6 个。:D
-
您是否通过 listView.SubItems.Add() 填写了所有带有子项的列?
-
我不确定您的问题,但如果这是 WPF 或 Winforms(看起来确实如此),那么首先不应该有多个线程访问您的列表视图。 WPF 和 Winforms 的基本原则是只有创建者线程才能访问控件。这很可能也与您的问题有关。