2009-07-27 3 views
0

체크리스트 박스가 들어있는 폼이 있습니다. 변경 사항이 있는지 확인하기 위해 체크 된 스타트 사이의 간단한 비교를 할 수 있기를 원합니다. 나는 체크리스트 상자의 "이전"버전의 사본을 가지고 있는데, 나는 두 개의 CheckedItem을 비교할 수 있다고 생각했지만 항상 다른 것으로 생각한다. 전체 체크리스트를 반복 할 수는 있지만 더 쉬운 방법이 될 것이라고 생각했다.간단한 체크리스트 박스 비교

비교는 단순히 :

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

1.1 .NET 프레임 워크를 수행하는 방법이

답변

0

(가) 참조는 동일한 참조하지 내용 있는지 점검 작업자이다. 따라서 CheckedItems 컬렉션의 사본을 만들어 Is를 사용하여 다른 CheckedItem 사본과 비교하면 다른 Collection을 참조하기 때문에 항상 false가됩니다. (이 경우 IsNot을 수행 할 수 있습니다. "(OldCheckedItems는 CurCheckedItems입니다.)하지만이 경우에는 도움이되지 않습니다.)

ItemCheck 이벤트에 플래그를 설정하여 체크 된 항목이 다른지 여부를 알 수 있습니다. oldCheckedList의 해당 항목으로 현재 변경중인 항목을 점검하고 체크 된 항목이 같은지 여부를 알려주는 플래그를 유지할 수 있습니다. 이전 응용 프로그램 인스턴스에서 oldCheckedList를 저장 한 경우 시작할 때 플래그를 설정하기 위해 항목을 비교해야합니다.