如何限制在列表视图中添加某些项目?

时间:2017-05-24 05:43:49

标签: c# listview

所以我在c#,listview1listview2的窗口表单应用程序中有2个列表视图。 listview1是从数据表中填充的,listview2是完全空的,没有链接到任何内容。

当我双击listview1中的某个项目时,它会被复制到listview2

我想为添加该项添加限制。例如,我的listview1包含扑克牌,看起来像......

listview1        listview2
itemname         itemname
Ace
King
Queen
Jack

规则是4listview1的每个条目最多只能listview2King。因此,如果我想要Queenlistview2,那么4应该最多接受3每个{(1}}(但不是一次全部 - 一个接一个也许你想要{{1} } King4Queen的卡片,在这种意义上,最大限制应为4

例如......

listview1        listView2
item name        item name
Ace              King
King             King
Queen            King
Jack             Queen
                 Queen
                 Queen
                 Queen

有人可以帮我这个吗?我适用什么条件?如何检查listview14所选项目是否已listview2次出现?我如何将它们限制在一定数量?

谢谢! 仍然需要帮助解决这个问题!

附录

我创建了一个简单的测试项目,这里是它的代码

namespace Listviewtest 
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void listView1_ItemActivate(object sender, EventArgs e)
        {
            copyCard(listView1, listView2);
        }

        private static void copyCard(ListView listView1, ListView listView2)
        {
            /* condition here to check if the selected item in listview1 is already present in listview2 and checking the count if its at 4 or not - I don't know the syntax for comparing */

            if()
            {
                foreach (ListViewItem item in listView1.SelectedItems)
            {
                listView2.Items.Add((ListViewItem)item.Clone());
            }
            }
            else
            {
                MessageBox.Show("You already have 4 of that card.");
            }
        }

        private void listView2_ItemActivate(object sender, EventArgs e)
        {
            listView2.SelectedItems[0].Remove();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

将条件添加到onclick,如下所示:

if(listview2.Items.Length!=limit)
{
   listview2.Items.Add(copyedItem);
}
else
{
   Console.WriteLine("Limit achieved!");
}
小心!它是伪代码!