2009-07-27 64 views
0

我有一個包含checkedlistbox的表單,我希望能夠在檢查的stauts之前和之後做一個簡單的比較,看看是否有任何改變。我有一個檢查清單框的「之前」版本的副本,我想我可以比較兩個CheckedItems,但它總是認爲它們是不同的,我可以遍歷整個checkedlistbox,但我認爲會有一個更簡單的方法。簡單的checkedlistbox比較

比較很簡單:

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框架

回答

0

is運算符檢查是否參考是參考相同,而不是內容。因此,當您製作集合CheckedItems的副本並將其與Is的另一個CheckedItems副本進行比較時,它總是會爲假,因爲它們引用了不同的集合。 (您可以通過這種方式完成IsNot:「not(OldCheckedItems Is CurCheckedItems)」,但在這種情況下可能無法幫助您。)

您可以通過在ItemCheck事件中設置標誌來判斷選中的項目是否有所不同。您可以使用oldCheckedList中的相應項目檢查當前正在更改的項目,並維護一個標誌,以指示檢查的項目是否相同。如果oldCheckedList已從應用程序的先前實例保存,則必須逐項比較以在啓動時設置標誌。