2016-07-13 8 views
-1

Ich habe einen Treeview-Controller mit Kontrollkästchen. Ich mag es, diesen Controller zu durchlaufen und folgendes zu tun: alle nicht geprüften Elemente löschen.entfernen Nicht überprüfte Elemente in einer Baumansicht

meinen Code (Hexe nicht funktioniert) erhielt ich Fehler 92 - For-Schleife nicht initialisiert

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

Initialise i vor Verwenden, ist auch die Knoten Array-Basis 1 oder 0? Ich sollte entsprechend eingestellt werden. – SPlatten

+0

Sie verwenden eine Schleife, die ein Objekt aus einer Auflistung zurückgibt und dann auf die Auflistung mit einer inkrementierten Variablen verweist. ObjNode ist redundant oder ich bin, wählen Sie eine geeignete Methode, objNode.Remove oder controls.nodes (I) .remove –

+0

Ich meine, der Fehler kommt, nachdem ein Element entfernt wurde (die Länge der Schleife ist change't) –

Antwort

0

ich so geputtet (und es ist gut für mich):

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 
Verwandte Themen