从ListView中删除所选项

时间:2009-09-15 07:16:14

标签: c#

如何从列表视图中删除所选项?

7 个答案:

答案 0 :(得分:30)

foreach ( ListViewItem eachItem in listView1.SelectedItems)
{
    listView1.Items.Remove(eachItem);
}

其中listView1是列表视图的ID。

答案 1 :(得分:4)

当只有一个项目(Multiselect = false)时:

listview1.SelectedItems[0].Remove();

对于多个项目(Multiselect = true):

foreach (ListViewItem eachItem in listView1.SelectedItems)
{
    listView1.Items.Remove(eachItem);
}

答案 2 :(得分:2)

listBox.Items.RemoveAt(listBox.SelectedIndex);

答案 3 :(得分:0)

listView1.Items.Cast<ListViewItem>().Where(T => T.Selected)
    .Select(T => T.Index).ToList().ForEach(T => listView1.Items.RemoveAt(T))

答案 4 :(得分:0)

ListView控件中移除项目的另一种方法(具有GridView)(在WPF中) -

var selected = myList.SelectedItems.Cast<Object>().ToArray();
foreach(var item in selected)
{
    myList.Items.Remove(item);
}

其中myListListView控件的名称

答案 5 :(得分:0)

嗯,尽管已经很晚了,但我最近遇到了这个问题,所以有人可能会再次遇到这个问题。实际上,我需要删除所有选中的项,但是上面的代码对我来说都不起作用。当集合在foreach期间更改时,它总是会引发错误。我的解决方案是这样的:

while (listView1.SelectedIndex > 0)
{
    listView1.Items.RemoveAt(listView1.SelectedIndex);
}

当您获得最后一个选定项目的位置时(当前),它不会引发错误,因此即使将其删除,您也将获得现在的位置。如果不再选择任何项目,则SelectedIndex返回-1并结束循环。这样,您可以确保不再有选定的项目,也可以确保代码将尝试删除负索引中的项目。

答案 6 :(得分:-1)

foreach (DataGridViewRow dgr in dgvComments.SelectedRows)
            dgvComments.Rows.Remove(dgr);