不可调用的成员“System.Windows.Forms.ListView.SelectedItems”不能像方法一样使
本文关键字:方法 不能 一样 SelectedItems 成员 调用 System ListView Forms Windows | 更新日期: 2023-09-27 18:31:54
尝试从foreach()中选择项目时失败。我的代码是这样的:
foreach (ListViewItem LISTA in this.lstImgAdded.SelectedItems)
{
lstImgAdded.SelectedItems(i).Remove();
}
无论语法错误如何(必须对索引器使用 [i]
而不是 (i)
),此处都不需要索引器。只需直接在枚举项上使用ListViewItem.Remove
:
foreach (ListViewItem item in lstImgAdded.SelectedItems)
{
item.Remove();
}
此外,您应该注意两件事:
不能使用
ListView.SelectedListViewItemCollection.Remove
,因为它是只读的(请参阅"备注"部分或实现):这是一种罕见的情况,当可以安全地修改序列时,在循环访问它时,因为
ListView.SelectedListViewItemCollection.GetEnumerator
返回所选项的"快照"的枚举器。
从最后开始计数,一直持续到达到零。
for (int i = listView1.Items.Count - 1; i >= 0; i--)
{
if (listView1.SelectedItems[i].Selected)
{
listView1.SelectedItems[i].Remove();
}
}
如果您有 10 个项目并删除第一个项目,则列表只剩下 9 个项目。一旦您尝试删除丢失的项目(在本例中为 6 号),您就会收到错误。