2011-01-01 5 views
0

Ich habe ListView, die Bilder aus einer ImageList zeigt. Jetzt wollte Index aller überprüften Bilder in ListView erhalten.Listenansicht, Kontrollkästchen, C#

List<int> list = new List<int>(); // in list index of all checked images on clicking button should be saved. 

private void button2_Click(object sender, EventArgs e) 
{ 
    ListView.CheckedListViewItemCollection checkedItems = lstview1.CheckedItems; 

    foreach (ListViewItem item in checkedItems) 
    { 
     list.add[// How can i get index of checked item ]; 
    } 
} 

Antwort

3

ListView verfügt bereits über die CheckedIndices-Eigenschaft. Sie sollten wahrscheinlich, es zu benutzen direkt, aber Sie können eine Liste <> aus es mit einem Linq Einzeiler erhalten:

 var list = listView1.CheckedIndices.Cast<int>().ToList(); 
0

Nun, ich bin nicht sicher, ob ich verstehe Ihre Frage vollständig, aber Sie können den Index eines ListViewItem mit item.Index zu bekommen.

0
ListView.CheckedListViewItemCollection checkedItems = lstview1.CheckedItems; 

foreach (ListViewItem item in checkedItems) 
{ 
     // This will fill the list with ListViewItems that are checked 
     list.add(listview1.Items[item.Index]); 
} 
+0

Ich habe bereits versucht, aber es kommt am besten überlastet Match-Methode für Liste ungültige Parameter hat. wenn – Shahgee

+0

Ich habe schon versucht, aber es kommt am besten überladen Match-Methode für die Liste hat ungültige Parameter. Wenn ich in MessageBox zeigen möchte, verstehe ich Grund, aber donot weiß, wie man es repariert. MessageBox.Show (lstview1.Items [item.Index] .ToString()); // zeigt listviewitem = {} – Shahgee

Verwandte Themen