C# 从listview中删除多个列表项

C# 从listview中删除多个列表项,c#,listview,C#,Listview,因此,我创建了一个按钮,当按下该按钮时,它将删除listview中的多个项目。然而,我似乎只能让它一次删除一个列表项。我知道这是一个糟糕的措辞,所以我的代码应该有助于解释我在做什么: private void button2_Click(object sender, EventArgs e) //remove { try { foreach ( ListViewItem eachItem in listView1.Selec

因此,我创建了一个按钮,当按下该按钮时,它将删除listview中的多个项目。然而,我似乎只能让它一次删除一个列表项。我知道这是一个糟糕的措辞,所以我的代码应该有助于解释我在做什么:

    private void button2_Click(object sender, EventArgs e) //remove
    {
        try
        {
            foreach ( ListViewItem eachItem in listView1.SelectedItems)
            {
                listView1.Items.Remove(eachItem);

            }
            task.RemoveAt(listView1.SelectedItems[0].Index); // Remove task from the list "task"
我试图让它从我的listview以及名为“task”的列表中删除所有选定的项目,但是,上面的代码行只允许我一次从列表中删除一个选定的项目

有什么帮助吗?谢谢你试试这个

   for (int i = task.SelectedItems.Count - 1; i >= 0; i++)
   {
     if (task.Items[i].Selected)
     {
         task.Items.Remove(listView2.Items[i]);
     }
   }
试试这个

   for (int i = task.SelectedItems.Count - 1; i >= 0; i++)
   {
     if (task.Items[i].Selected)
     {
         task.Items.Remove(listView2.Items[i]);
     }
   }

我将假设您的任务列表在项目计数方面与ListView相等,并且任务[0]中的对象与ListView.Items[0]相同。如果为真,请先从任务中删除该项,然后从ListView中删除该项

// Removing items from the bottom of the selected items and working your way up
for (int i = listView1.SelectedIndices.Count - 1; i >= 0; i--)
{
    task.RemoveAt(listView1.SelectedIndices[i]);
    listView1.Items.RemoveAt(listView1.SelectedIndices[i];
}

我将假设您的任务列表在项目计数方面与ListView相等,并且任务[0]中的对象与ListView.Items[0]相同。如果为真,请先从任务中删除该项,然后从ListView中删除该项

// Removing items from the bottom of the selected items and working your way up
for (int i = listView1.SelectedIndices.Count - 1; i >= 0; i--)
{
    task.RemoveAt(listView1.SelectedIndices[i]);
    listView1.Items.RemoveAt(listView1.SelectedIndices[i];
}

每行只能删除一项

如果要对更改的枚举数进行枚举,则可以使用“.ToArray”扩展方法

您还应该使用BeginUpdate/EndUpdate函数来加快速度


每行只能删除一项

如果要对更改的枚举数进行枚举,则可以使用“.ToArray”扩展方法

您还应该使用BeginUpdate/EndUpdate函数来加快速度


我有一个列表,其中包含具有多个属性的项目,listview仅显示列表中每个项目的第一个属性,即标题。它会从列表视图中删除选定的项目,我只是想知道是否有办法使它从列表中删除所有选定的项目itself@Jamie1234我可以从listview中删除多个项目,使用foreach(ListViewItem eachItem in listView1.SelectedItems){listView1.items.Remove就可以了(eachItem);它只是,从listview中删除它们并不会从实际列表中删除它们本身。它只是“隐藏”它们。要从列表中删除它们,我只知道如何使用:task.RemoveAt(listView1.SelectedItems[0].Index)一次删除一个;我只是想找到一种方法一次从列表中删除多个项目我有一个包含多个属性的项目的列表,listview只显示列表中每个项目的第一个属性,即标题。它从listview中删除选定的项目,我只是想知道是否有方法使其删除所有选定的项目从名单上itself@Jamie1234我可以从列表视图中删除多个项目,使用foreach(ListViewItem-eachItem-in-listView1.SelectedItems){listView1.items.Remove(eachItem)就可以了;只是,从列表视图中删除这些项目并不会从实际列表本身中删除它们。它只是“隐藏”了要从列表中删除它们,我只知道如何使用:task.RemoveAt(listView1.SelectedItems[0].Index)一次删除一个;我只是想找到一种方法,一次从列表中删除多个项目。你应该对你的解决方案做一点解释,指出差异。这就是所谓答案的风格。你应该对你的解决方案做一点解释,指出差异。这就是所谓答案的风格。