2016-07-13 3 views
-1

체크 박스가있는 트리보기 컨트롤러가 있습니다. 이 컨트롤러를 통해 반복하고 다음을 수행합니다. 체크되지 않은 항목을 모두 삭제합니다.트리 뷰에서 체크되지 않은 항목을 제거합니다.

내 코드 (마녀가 작동하지 않습니다) 나는 오류 92받은 -이 같은 퍼트 (그리고 나를 위해 좋은)

Dim objNode As Node 
Dim i As Integer 

For Each objNode In Me.TreeView1.Nodes 
i = i + 1 
    If Me.TreeView1.Nodes(i).Checked = False Then Me.TreeView1.Nodes.Remove (i) 
Next 
+0

초기화 내가 전에를 사용하여, 또한 노드 배열 기본 1 또는 0입니까? 그에 따라 설정해야합니다. – SPlatten

+0

당신은 컬렉션에서 객체를 반환하는 루프를 사용하고, 증가 된 변수를 가진 컬렉션을 참조합니다. objNode가 중복이거나 적합한 방법을 선택합니다. objNode.Remove 또는 controls.nodes (I) .remove –

+0

즉, 하나의 항목이 제거 된 후에 오류가 발생합니다 (루프의 길이는 변경되지 않습니다) –

답변

0

초기화되지 루프를 들어

Dim i As Integer 
For i = Me.TreeView1.Nodes.Count To 1 Step -1 
    If Me.TreeView1.Nodes(i).Checked = False Then Me.TreeView1.Nodes.Remove (i) 
Next i 
관련 문제