Hallo Manfred X!
Wenn auch verspätet (war wieder unterwegs) --> Vielen, vielen Dank!
Funktioniert jetzt wunderbar!!!
Imports System.IO
Public Class frmMain_1
Dim IniNode As TreeNode = Nothing
Public Class TreeNode
Inherits System.Windows.Forms.TreeNode
Public Path As String
End Class
Private Sub frmMain_1_Load (sender As Object, e As System.EventArgs) Handles _
Me.Load
Dim tn As TreeNode = Nothing
Dim nodeInfo As DirectoryInfo = New DirectoryInfo("C:\")
'setDrives()
For Each di As DirectoryInfo In nodeInfo.GetDirectories
If di.Attributes = FileAttributes.Directory Then
tn = AddNode(trvFolders.Nodes, di.Name, di.FullName)
If Directory.GetDirectories(tn.Path).Length > 0 Then
AddNode(tn.Nodes, ".", ".")
End If
End If
Next
End Sub
Private Sub btnPresetting_Show_Click (sender As System.Object, e As _
System.EventArgs) Handles btnPresetting_Show.Click
Call OpenNode(IniNode)
End Sub
Private Sub btnPresetting_Set_Click (sender As System.Object, e As _
System.EventArgs) Handles btnPresetting_Set.Click
IniNode = trvFolders.SelectedNode '.Parent
trvFolders.Focus
End Sub
Private Function AddNode (ByVal nodeCollection As TreeNodeCollection, ByVal _
Caption As String, ByVal path As String) As TreeNode
Dim tn As New TreeNode()
tn.Text = Caption
tn.Path = path
nodeCollection.Add(tn)
Return tn
End Function
Private Sub OpenNode (nd As TreeNode)
If nd Is Nothing Then Exit Sub
Dim ndl As New List(Of TreeNode)
With ndl
.Add(nd)
While .item(.Count - 1).Parent IsNot Nothing
.Add(.Item(.Count - 1).Parent)
End While
For i As Integer = .Count - 1 To 0 Step -1
.Item(i).Expand()
Next i
trvFolders.SelectedNode = IniNode
trvFolders.Focus
End With
End Sub
Private Sub trvFolders_BeforeExpand (sender As Object, e As _
TreeViewCancelEventArgs) Handles trvFolders.BeforeExpand
If e.Node.Parent Is Nothing Then
trvFolders.CollapseAll()
Else
For Each Node As TreeNode In e.Node.Parent.Nodes
Node.Collapse()
Next
End If
Dim tn As TreeNode = DirectCast(e.Node, TreeNode)
If DirectCast(tn.Nodes(0), TreeNode).Path = "." Then
createSubnodes(tn)
End If
End Sub
Private Sub CreateSubnodes _
(ByVal node As TreeNode)
Dim d As New DirectoryInfo(node.Path)
node.Nodes.Clear()
Dim tn As TreeNode = DirectCast(node, TreeNode)
Try
For Each di As DirectoryInfo In d.GetDirectories
'If getFiles(di.FullName) = True Then
tn = AddNode(node.Nodes, Path.GetFileName(di.FullName), di.FullName)
If Directory.GetDirectories(tn.Path).Length > 0 Then
AddNode(tn.Nodes, ".", ".")
End If
'End If
Next
Catch ex As Exception
End Try
End Sub
End Class |