Hallo,
ich habe mir mit Combobox für die Laufwerke und Treeview eine Art Dateiexplorer gebastelt. auslesen der Laufwerke, Verzeichnisse und unterverzeichnisse sowie Dateien funktioniert alles.
Nun möchte ich beim Programmstart den Treeview gleich mit dem zuletzt verwendeten Verzeichnis öffnen. Bis zum Auffinden des dazugehörigen Nodes, Aufklappen und markieren dieses Nodes funktioniert es bereits auch.
Nur müßte ich jetzt noch das Ereignis auslösen, welches dann in der Listview die im Ordner enthaltenen Dateien anzeigt.
Zum aufrufen des Ereignisses fehlen mir aber die Parameter, die beim realen Click in e As TreeNodeMouseClickEventArgs übergeben werden.
Kann ich die "rückwärts" auch irgendwie aus dem selectierten Node auslesen? (Zeile 31) Oder sollte ich ein ganz anderes Ereignis verwenden? (Den gleichen Code an zwei Stellen im Programm zu verwenden fände ich nicht so optimal)
ich habe mir mit Combobox für die Laufwerke und Treeview eine Art Dateiexplorer gebastelt. auslesen der Laufwerke, Verzeichnisse und unterverzeichnisse sowie Dateien funktioniert alles.
Nun möchte ich beim Programmstart den Treeview gleich mit dem zuletzt verwendeten Verzeichnis öffnen. Bis zum Auffinden des dazugehörigen Nodes, Aufklappen und markieren dieses Nodes funktioniert es bereits auch.
Nur müßte ich jetzt noch das Ereignis auslösen, welches dann in der Listview die im Ordner enthaltenen Dateien anzeigt.
Zum aufrufen des Ereignisses fehlen mir aber die Parameter, die beim realen Click in e As TreeNodeMouseClickEventArgs übergeben werden.
Kann ich die "rückwärts" auch irgendwie aus dem selectierten Node auslesen? (Zeile 31) Oder sollte ich ein ganz anderes Ereignis verwenden? (Den gleichen Code an zwei Stellen im Programm zu verwenden fände ich nicht so optimal)
VB.NET-Quellcode
- Public Sub findNode(ByVal tn As TreeNode, ByVal name As String)
- 'in Anlehnung an http://blog.bigbasti.com/eine-treeview-durchsuchen-und-den-gefundenen-pfad-aufklappen/
- ' Diese Funktion durchläuft den ganzen Treenode bis ein Eintrag gefunden wird der dem Suchbegriff
- ' gleicht. Danach wird der Pfad der zu diesem TreeNode führt (zur Visualisierung) aufgeklappt
- Dim i As Integer
- Dim sPathName As String
- Dim tv As TreeView
- sPathName = name.Insert(3, "\") 'Im Treenode C:\\irgendwas
- tv = tn.TreeView
- For Each tnn As TreeNode In tn.Nodes
- If tnn.FullPath = sPathName Then
- Dim t As TreeNode = tnn
- For i = tnn.Level To 0 Step -1
- Try
- t = t.Parent
- t.Expand()
- Catch ex As Exception
- End Try
- Next
- tnn.Parent.Expand()
- 'aufgeklappten Pfad markieren
- tv.SelectedNode = tnn
- 'Dateien aus ausgewähltem Pfad anzeigen
- Dim exy As TreeNodeMouseClickEventArgs
- exy=tn.Nodes.... HIER KLEMMT ES
- Call TreeView1_NodeMouseClick(tv, exy)
- Exit Sub
- End If
- findNode(tnn, name)
- Next
- End Sub
- Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
- Dim newSelected As TreeNode = e.Node
- listView1.Items.Clear()
- Dim nodeDirInfo As DirectoryInfo = CType(newSelected.Tag, DirectoryInfo)
- ....