我有兩個ListViews ... 我有ListView(ListView1)與項目,另一個(ListView2)是空的。我需要提前從ListView1的檢查的項目複製到ListView2在同一時間我一直在使用C#來刪除ListView1的檢查的項目...checked listview items
我使用Windows窗體...
謝謝.. 。
我有兩個ListViews ... 我有ListView(ListView1)與項目,另一個(ListView2)是空的。我需要提前從ListView1的檢查的項目複製到ListView2在同一時間我一直在使用C#來刪除ListView1的檢查的項目...checked listview items
我使用Windows窗體...
謝謝.. 。
像這樣? (未測試!!)
for (int i = ListView1.Items.Count - 1; i >= 0; i--)
{
if (ListView1.Items[i].Checked)
{
ListView2.Items.Add(ListView1.Items[i]);
ListView1.Items.Remove(ListView.Items[i]);
// OR
// ListView1.Items.RemoveAt(i);
}
}
編輯:
這可能會更好。
CheckedListViewCollection checked = ListView1.CheckedItems
foreach (itm in checked)
{
ListView2.Items.Add(itm);
ListView1.Items.Remove(itm);
}
//複製的ListView
for (int i = ListView1.Items.Count - 1; i >= 0; i--)
{
if (ListView1.Items[i].Checked)
{
ListView2.Add(ListView1.Items[i]);
}
}
//Delete checked
ListView1.CheckedIndexCollection checkedItemsList = listView1.CheckedIndices;
while (checkedItemsList.Count > 0)
{
listView1.Items.RemoveAt(checkedItemsList[0]);
}
再見
您的for循環中出現錯誤。應該閱讀我 - 。不是我++。 – 2009-08-25 09:53:57
顯然我也是這樣! :D – 2009-08-25 09:55:33
謝謝,CKret。 – RRUZ 2009-08-25 09:57:54
while (listView1.CheckedItems.Count > 0)
{
ListViewItem item = listView1.CheckedItems[0];
listView1.Items.Remove(item);
listView2.Items.Add(item);
}
測試。
請注意刪除和添加項目的順序。如果您嘗試將ListViewItem
同時添加到多個列表,框架會拋出異常。
CheckedListViewCollection的使用很好。 – RRUZ 2009-08-25 10:05:53
您的第二個解決方案是完成此操作的完美方式。謝謝! – CharithJ 2011-05-13 03:11:39