Hallo,
viele Recherche im Internet und Versuche mit verschiedenen Code Varianten haben mein Problem immer noch nicht gelöst.
Ich erstelle einen kleinen Explorer. Hier fehlt mir die Funktion, dass nach dem Start ein Pfad selektiert sein soll, den ich in der Registry hinterlegt habe.
Somit habe ich den Pfad bereits zur Verfügung.
Jetzt soll der entsprechende Pfad im Treeview gefunden und selektiert werden.
Das suchen und selektieren funktioniert nur bis zur 2. Ebene.
z.B.
-c:\
-c:\Archiv
-c:\Archiv\Test1
Alles weiteren child nodes werden nicht mehr gefunden.
Hier zeige ich mal 2 Varianten mit denen ich u.a. experimentiert habe.
[Highlight=vbnet]
Private Function FindNode(ByVal Text As String, ByVal Nodes As TreeNodeCollection) As Boolean
For Each lNode As TreeNode In Nodes
If lNode.Text = Text Then
lNode.TreeView.SelectedNode = lNode
Return True
Else
'FindNode = FindNode(Text, lNode.Nodes)
If FindNode(Text, lNode.Nodes) Then
Return True
End If
End If
Next
Return False
End Function
' und hier die andere
'Public Function FindNode(ByVal ParentNode As TreeNode, ByVal SearchVal As String) As TreeNode
' Dim tmpNode As TreeNode
' If ParentNode.Text = SearchVal Then
' Return ParentNode
' Else
' Dim child As TreeNode
' For Each child In ParentNode.Nodes
' tmpNode = FindNode(child, SearchVal)
' If Not tmpNode Is Nothing Then
' Return tmpNode
' End If
' Next
' End If
' Return Nothing
'End Function
[/highlight]
Ich hoffe, dass mir jemand helfen kann.
viele Recherche im Internet und Versuche mit verschiedenen Code Varianten haben mein Problem immer noch nicht gelöst.
Ich erstelle einen kleinen Explorer. Hier fehlt mir die Funktion, dass nach dem Start ein Pfad selektiert sein soll, den ich in der Registry hinterlegt habe.
Somit habe ich den Pfad bereits zur Verfügung.
Jetzt soll der entsprechende Pfad im Treeview gefunden und selektiert werden.
Das suchen und selektieren funktioniert nur bis zur 2. Ebene.
z.B.
-c:\
-c:\Archiv
-c:\Archiv\Test1
Alles weiteren child nodes werden nicht mehr gefunden.
Hier zeige ich mal 2 Varianten mit denen ich u.a. experimentiert habe.
[Highlight=vbnet]
Private Function FindNode(ByVal Text As String, ByVal Nodes As TreeNodeCollection) As Boolean
For Each lNode As TreeNode In Nodes
If lNode.Text = Text Then
lNode.TreeView.SelectedNode = lNode
Return True
Else
'FindNode = FindNode(Text, lNode.Nodes)
If FindNode(Text, lNode.Nodes) Then
Return True
End If
End If
Next
Return False
End Function
' und hier die andere
'Public Function FindNode(ByVal ParentNode As TreeNode, ByVal SearchVal As String) As TreeNode
' Dim tmpNode As TreeNode
' If ParentNode.Text = SearchVal Then
' Return ParentNode
' Else
' Dim child As TreeNode
' For Each child In ParentNode.Nodes
' tmpNode = FindNode(child, SearchVal)
' If Not tmpNode Is Nothing Then
' Return tmpNode
' End If
' Next
' End If
' Return Nothing
'End Function
[/highlight]
Ich hoffe, dass mir jemand helfen kann.
Comment