Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove selected rows from multi-column listView

I have a listview with two columns and I'm using a context menu to allow users to remove selected rows. To remove the selected rows, I've tried with the following code but it doesn't work:

private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
    listView1.SelectedItems.Clear();
}

I suspect this is because the listview has two columns, but I can't figure out a solution to remove selected rows. Removing all rows works with: listView1.Items.Clear();.

like image 377
BeefTurkey Avatar asked Mar 02 '23 00:03

BeefTurkey


2 Answers

The latest example of BeefTurkey looks correct, but he should decrement the variable i after removing a selected item:

for (int i = 0; i < listView1.Items.Count; i++ )
{
    if (listView1.Items[i].Selected)
    {
        listView1.Items[i].Remove();
        i--;
    }
}

The index of items larger as i is decremented by 1 after the removal. So you should reposition i to match the next not tested item.

like image 152
GvS Avatar answered Mar 12 '23 17:03

GvS


while (listBox1.SelectedItems.Count > 0)
{
    listBox1.Items.Remove(listBox1.SelectedItem);
}
like image 41
Ahmed Avatar answered Mar 12 '23 17:03

Ahmed