Ist jetzt ne blöde Situation. ^^
Mein Problem habe ich lösen können, in dem ich mit einem einfachen Aufbau nochmal angefangen habe. Also ohne das Formatierungs-, Sortierungszeugs, etc. drum herum.
Ich habe schlicht und ergreifend vergessen den aktuellen Node mitzugeben (siehe fette markierung).
Als eventuellen Denkanstoß für andere, hier der QT:
Private Sub AddToTreeView()
'alle Folgeordner zum gewählten Modul abbilden
Dim oliste As DataGridView = Me.dgvVersionCurrent
Dim otrvFolder As TreeView = Me.trv_Folder
Dim sqry As String = ""
Dim sqry1 As String = ""
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim i As Integer = 0
Dim j As Integer = 0
Dim bDirectoryExist As Boolean = True
Try
Select Case oliste.SelectedRows(0).Cells(1).Value
.
.
.
Case "plpriv"
sqry1 = "SELECT Directory FROM tbl_UserDirectory WHERE U_ID" & _
"= " & ipubU_ID
rs1.Open(sqry1, sConnect, _
ADODB.CursorTypeEnum.adOpenDynamic, _
ADODB.LockTypeEnum.adLockOptimistic)
NextFolder_plpriv:
If rs1.EOF = False Then
Dim trvNode1 As New TreeNode(rs1.Fields( _
"Directory").Value)
otrvFolder.Nodes(0).Nodes.Add(trvNode1)
otrvFolder.Nodes(0).LastNode.ForeColor = Color.FromArgb( _
ipubAlphaNew, ipubRedNew, ipubGreenNew, ipubBlueNew) _
'alle Knoten / Nodes "grün" färben
Do Until rs1.EOF = True
sqry = "SELECT Client_FullName FROM" & _
"tbl_Kundenversionen WHERE C_ID = " & _
cboClient.SelectedValue
rs.Open(sqry, sConnect, _
ADODB.CursorTypeEnum.adOpenDynamic, _
ADODB.LockTypeEnum.adLockOptimistic)
Dim DirFolders As New System.IO.DirectoryInfo( _
otrvFolder.Nodes(0).Nodes(i).FullPath)
For Each Folders As System.IO.DirectoryInfo In _
DirFolders.GetDirectories
If InStr(Folders.Name, rs.Fields( _
"Client_FullName").Value) > 0 Then
Dim trvNode As New TreeNode(Folders.Name)
otrvFolder.Nodes(0).Nodes(i).Nodes.Add( _
trvNode)
otrvFolder.Nodes(0).Nodes( _
i).LastNode.ForeColor = Color.FromArgb( _
ipubAlphaNew, ipubRedNew, ipubGreenNew, _
ipubBlueNew) 'alle Knoten / Nodes "grün" _
färben
Call FillTreeNode(trvNode)
End If
Next
rs.Close()
i = i + 1
rs1.MoveNext()
GoTo NextFolder_plpriv
Loop
End If
rs1.Close()
End Select
Catch
Call OnErr(Me.Name, "FillTreeNode", Err.Description)
End Try
End Sub
Private Sub FillTreeNode(ByVal dNode As TreeNode)
'alle Ordner und Unterordner zum gewählten Modul abbilden
Try
Dim DirFolders As New System.IO.DirectoryInfo(dNode.FullPath)
For Each Folders As System.IO.DirectoryInfo In _
DirFolders.GetDirectories
Dim trvNode As New TreeNode(Folders.Name)
dNode.Nodes.Add(trvNode)
If Me.lblPath.Visible = False Then dNode.LastNode.ForeColor = _
Color.FromArgb(ipubAlphaNew, ipubRedNew, ipubGreenNew, _
ipubBlueNew) 'alle Knoten / Nodes "grün" färben
FillTreeNode(trvNode)
Next
Catch
Call OnErr(Me.Name, "FillAllNodes", Err.Description)
End Try
End Sub |