Ho provato a rimuovere elementi specifici da un listview utilizzando il metodo RemoveAt()
. Ma quando lo rimuovo la prima volta alcuni oggetti rimarranno.Gli elementi specificati non verranno eliminati quando si utilizza ListView.Item.RemoveAt()
Ad esempio: vedere l'immagine qui sotto
Codice:
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].SubItems[0].Text == "A1")
{
listView1.Items.RemoveAt(i);
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
for(int i = 0; i<3; i++)
{
ListViewItem lvi = new ListViewItem("A1");
lvi.SubItems.AddRange(new string[] {"desc" + i.ToString(), i.ToString()});
listView1.Items.Add(lvi);
}
for (int i = 0; i < 2; i++)
{
ListViewItem lvi = new ListViewItem("A2");
lvi.SubItems.AddRange(new string[] { "desc" + i.ToString(), i.ToString() });
listView1.Items.Add(lvi);
}
}
+1 Perché è probabilmente quello che vorrei fare. –
+1, @TSS, se cambi il ciclo 'for' per iniziare alla fine e vai a' 0', puoi sbarazzarti di 'i -;'. –
Bel fermo alla deriva. – Inisheer