| |
VB.NET - Ein- und UmsteigerTreeview - Nodes richtig selektieren | | | Autor: Volker Bunge | Datum: 09.05.14 13:26 |
| Hallo zusammen,
ich habe hier http://www.vbarchiv.net/forum/id22_i95421t95421_treeview-verzeichnis-anzeigen-in-denen-auch-dateien-sind.html schon geschrieben, dass ich ein Programm schreibe, welches mir nur Verzeichnisse mit bestimmten Dateitypen (Bsp. MP3) anzeigt.
Soweit läuft das Programm auch. Jetzt habe ich aber ein Problem mit der Treeviewdarstellung der Verzeichnisse.
Es gibt folgende Situation
F:\
...Fertig umbenannt
......Hörbuch
.........Die Drei Fragezeichenkids
............Die Drei Fragezeichenkids - Folge 001 - Hörbuch
............Die Drei Fragezeichenkids - Folge 002 - Hörbuch
............Die Drei Fragezeichenkids - Folge 003 - Hörbuch
............Die Drei Fragezeichenkids - Folge 001
............Die Drei Fragezeichenkids - Folge 002
............Die Drei Fragezeichenkids - Folge 003
......Hörspiel
.........Die Drei Fragezeichenkids
............Die Drei Fragezeichenkids - Adventskalender 2012
Die drei Zeilen von Hörbuch
............Die Drei Fragezeichenkids - Folge 001
............Die Drei Fragezeichenkids - Folge 002
............Die Drei Fragezeichenkids - Folge 003
sind eigentlich Hörspiele.
Hier mein Code
Sub Treeview_Anzeigen_1(Startverzeichnis As String)
TreeView1.Nodes.Clear()
TreeView1.Visible = True
' Aus dem Startverzeichnis den Laufwerksbuchstaben herausfinden und
' diesen als Startnodes festlegen
Dim nNode As New TreeNode
Dim AltNode As New TreeNode
nNode.Name = Mid(Startverzeichnis, 1, 3)
nNode.Text = Mid(Startverzeichnis, 1, 3)
nNode.Tag = Mid(Startverzeichnis, 1, 3)
TreeView1.Nodes.Add(nNode)
TreeView1.SelectedNode = TreeView1.TopNode
tbox_SucheNode.Text = nNode.Text
For Each Verz In LBox_Gefunden_Verzeichnisse.Items
Dim VerzeichnissArray() As String = Split(Verz, "\")
Dim hNode As TreeNode = AltNode
tbox_SucheNode.Text = VerzeichnissArray(0)
If FindNodeByName() = False Then
hNode = nNode
End If
For v = 0 To VerzeichnissArray.Length - 1
tbox_SucheNode.Text = VerzeichnissArray(v)
If FindNodeByName() = False Then
TreeView1.SelectedNode = hNode
Dim subnode As New TreeNode
subnode.Name = VerzeichnissArray(v)
subnode.Text = VerzeichnissArray(v)
subnode.Tag = VerzeichnissArray(v)
TreeView1.SelectedNode.Nodes.Add(subnode)
hNode = subnode
End If
Next
AltNode.Name = VerzeichnissArray(0).ToString
Next
End Sub
Function FindNodeByName() As Boolean
Me.tbox_SucheNode.Refresh()
Try
Dim tn() As TreeNode = Me.TreeView1.Nodes(0).Nodes.Find( _
tbox_SucheNode.Text, True)
Dim i As Integer = 0
For i = 0 To tn.Length
TreeView1.SelectedNode = tn(i)
FindNodeByName = True
Exit For
Next i
Catch
FindNodeByName = False
End Try
End Function In der Listbox LBox_Gefunden_Verzeichnisse stehen die Verzeichnisse, in denen sich MP3-Dateien befinden. Bsp:
F:\Fertig umbenannt\Hörbuch\Die drei Fragezeichen Kids\Die drei Fragezeichen Kids - Folge 001 - Panik im Paradies - Hörbuch
F:\Fertig umbenannt\Hörspiel\Die drei Fragezeichen Kids\Die drei Fragezeichen Kids - Adventskalender 2012
ANMERKUNG: Mir ist mein Fehler mit dem doppelten Einlesen aus dem vorherigen Thread bewusst, wird auch noch behoben.
Kann mir jemand sagen, wo der Fehler liegt? Mir ist schon klar, dass das Verzeichnis/Node "Die drei Fragezeichen Kids" unter dem Nodes Hörbuch als erstes kommt und somit die Find-Sub den nicht richtigen Knoten identifieziert. Nur wie stelle ich es an, dass der richtige Node gezogen wird?
Das Endergebnis sollte dann so aussehen:
F:\
...Fertig umbenannt
......Hörbuch
.........Die Drei Fragezeichenkids
............Die Drei Fragezeichenkids - Folge 001 - Hörbuch
............Die Drei Fragezeichenkids - Folge 002 - Hörbuch
............Die Drei Fragezeichenkids - Folge 003 - Hörbuch
......Hörspiel
.........Die Drei Fragezeichenkids
............Die Drei Fragezeichenkids - Adventskalender 2012
............Die Drei Fragezeichenkids - Folge 001
............Die Drei Fragezeichenkids - Folge 002
............Die Drei Fragezeichenkids - Folge 003
Vielen Dank schon einmal an alle im Voraus.
Volker | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|