我想知道如何将 listview1 中的双击项目复制到 listview2 ,到目前为止我在 listview1上使用了此代码鼠标双击事件。
foreach (ListViewItem item in lvItemlist.SelectedItems)
{
lvItemBuy.Items.Add((ListViewItem)item.Clone());
}
当我双击该项目时,它将所选项目的所有内容复制到我的 listview2 ,无论如何这不是我想要的......我在 listview1 中说我收到了这个项目:
ID | ITEMNAME | QUANTITY
1 | ITEM1 | 100
我想要的是每当我双击 listview1 上的项目时,数量应该减少1,所以在listview1上会是这样的:
ID | ITEMNAME | QUANTITY
1 | ITEM1 | 99
然后将所选项目添加到 listview2 ,其中包含1个数量:
ID | ITEMNAME | QUANTITY
1 | ITEM1 | 1
再次双击同一项目后,它会在 listview1 上执行相同的操作,但我不希望它复制 listview2 上的项目。只需+1数量。有没有办法做到这一点?
答案 0 :(得分:0)
有很多方法可以做到这一点。您可以为listviewItems引入Id。不要直接关闭ListViewItem,而是编写一个方法,将属性从第一个listviewitem复制到第二个。在此方法中,您可以减少数量并检查所选listviewitem是否已在第二个列表视图中
答案 1 :(得分:0)
有两种不同的方式。
如果要将项目从listview1复制到listview2:
private static void CopySelectedItems(ListView source, ListView target)
{
foreach (ListViewItem item in source.SelectedItems)
{
target.Items.Add((ListViewItem)item.Clone());
}
}
如果要将项目从listview1移动到listview2:
private static void MoveSelectedItems(ListView source, ListView target)
{
while (source.SelectedItems.Count > 0)
{
ListViewItem temp = source.SelectedItems[0];
source.Items.Remove(temp);
target.Items.Add(temp);
}
}