你这么写不对,你这个写法要弄一个flag来做标识位,在第一层的for里检查flag有没有并标记,用FindByValue就行:
For Each item in listbox1.items
if ListBox2.Items.FindByValue(item.value) Is Nothing Then
TextBox1.Text = item.value
exit for
end if
end for
其实这个写法还是有问题的,因为有两种情况,如果ListBox1的值是123,ListBox2的值是12,那么可以用上面这个代码,但如果反过来,那么就要把外面的for换成ListBox2
也就是说被对比集合一定要比源集合小才行,所以上面的代码我们可以改成这样:
Dim lbsource as ListBox=IIf(ListBox2.Items.Count<ListBox1.Items.Count,ListBox1,ListBox2)
dim dst as ListBox=IIf(ListBox2.Items.Count<ListBox1.Items.Count,ListBox2,ListBox1)
For Each item in lbsource.items
if dst.Items.FindByValue(item.value) Is Nothing Then
TextBox1.Text = item.value
exit for
end if
end for