【发布时间】:2017-04-17 15:03:12
【问题描述】:
我遇到了阻止将重复项添加到列表框的问题。
- 我的 Windows 窗体有 2 个列表框
- 表单的设计使得当用户单击按钮时,他们在第一个框中选中的项目将添加到第二个框中
- 下面我添加到“添加”按钮的代码旨在防止在框 2 中已存在相同项目时将框 1 中选中的项目添加到框 2。
- 我的代码的问题是,如果框 2 包含从保存文件加载的项目,它不会阻止将副本添加到框 2。
关于如何解决此问题的任何想法?
Public Sub additems_Click(sender As Object, e As EventArgs) Handles additems.Click
Dim itemChecked As Object
Dim alreadyonkey As Boolean
Dim duplicates As Integer = 0
If box1.CheckedItems.Count > 0 Then
For Each itemChecked In box1.CheckedItems
alreadyadded = False
'Check if item selected has already been added to box2
If box2.Items.Contains(itemChecked) = True Then
alreadyadded = True
duplicates = duplicates + 1
Else
alreadyadded = False
End If
'Add item if all criteria met
If box2.Items IsNot "" And alreadyadded = False Then
box2.Items.Add(itemChecked)
End If
Next
If duplicates > 0 Then
MsgBox("One or more of the items you are trying to add have already been added.", MsgBoxStyle.Critical, "Item has already been added")
alreadyadded = False
End If
End If
结束子
【问题讨论】:
-
是列表框还是选中列表框?您可以使用包含
Selected或类似属性的类以及它们的集合作为数据源。第一个将过滤那些未选择的列表,另一个将是相反的。 -
Box1 是一个选中列表框。 Box2 只是一个普通的列表框。使用该方法的问题在于 Box1 中可供选择的项目是根据在单独的组合框中选择的索引生成的。
标签: vb.net validation listbox checkedlistbox listboxitems