0

我想知道如何将双击项目从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 数量。有没有办法做到这一点?

4

2 回答 2

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);
    }            
}
于 2013-03-13T07:07:20.130 回答
0

有很多方法可以做到这一点。您可以为 listviewItems 引入 Id。不要直接关闭 ListViewItem,而是编写一个将属性从第一个 listviewitem 复制到第二个的方法。在这种方法中,您可以减少数量并检查所选列表视图项是否已经在第二个列表视图中

于 2013-03-13T06:44:20.260 回答