简单的checkedlistbox比较

时间:2009-07-27 16:35:43

标签: asp.net vb.net

我有一个包含checkedlistbox的表单,我希望能够在之前和之后对已检查的stauts进行简单的比较,看看是否有任何更改。我有一份清单盒子的“之前”版本的副本,我想我可以只比较两个CheckedItems,但它总是认为它们不同,我可以遍历整个checkedlistbox,但我认为会有一种更简单的方法。 / p>

比较简单:

Dim CurCheckedItems As CheckedListBox.CheckedItemCollection = ReportChList.CheckedItems
Dim OldCheckedItems As CheckedListBox.CheckedItemCollection = OldReportChList.CheckedItems

If OldCheckedItems Is CurCheckedItems Then
Else
...
End If

P.S。有没有办法做IsNot

.net 1.1框架

1 个答案:

答案 0 :(得分:0)

Is运算符检查引用是否相同,而不是引用的内容。因此,当您复制CheckedItems集合并将其与带有Is的CheckedItems的另一个副本进行比较时,它始终为false,因为它们引用不同的集合。 (你可以用这种方式完成IsNot:“not(OldCheckedItems是CurCheckedItems)”,但在这种情况下这可能对你没有帮助。)

您可以通过在ItemCheck事件中设置标志来判断检查的项目是否不同。您可以使用oldCheckedList中的相应项检查当前正在更改的项目,并维护一个标志,以指示检查的项目是否相同。如果oldCheckedList已从应用程序的先前实例保存,则必须逐项进行比较以在启动时设置标志。