vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
TreeView Node umbenennen 
Autor: Marty**
Datum: 14.11.20 21:38

Hallo,

ich würde gerne aus einem Unterordner meines Programms die Ordnerstruktur in ein Treeview übernehmen.

Hierzu verwende ich ExpTree hier aus dem Forum
https://www.vbarchiv.net/tipps/tipp_1587-explorer-treeview-fuer-vbnet.html

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim Pfad As String = Application.ExecutablePath & "\Daten"
        ExpTree1.ShowTree(Pfad)
        'Label1.Text = Pfad
    End Sub
Wie kann ich den Knoten umbenennen, damit nicht der ganze lange Ordnerpfad angezeigt wird ?
Hätte gerne nur Daten dastehen.

Mfg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView Node umbenennen 
Autor: HenryV
Datum: 01.12.20 16:24

Da muss du ein bisschen umprogrammieren, z.B. den vollen Pfad im Tag hinterlegen, damit du den Anzeigenamen ändern kannst.
Ersetze die bestehenden Prozeduren mit diesen.
Public Sub ShowTree(ByVal Path As String)
    Dim nNode As TreeNode
    Dim di As New IO.DirectoryInfo(Path)
    If di.Exists Then
        nNode = New TreeNode(di.Name) With {.Tag = di}
        Me.Nodes.Add(nNode)
        Me.FillTreeNode(nNode)
    End If
End Sub
Private Sub FillTreeNode(ByVal dNode As TreeNode)
    Try
        Dim d As DirectoryInfo = CType(dNode.Tag, DirectoryInfo)
        For Each di As DirectoryInfo In d.GetDirectories
            Dim nNode As New TreeNode(di.Name) With {.Tag = di}
            dNode.Nodes.Add(nNode)
            nNode.Nodes.Add("")
        Next
    Catch : End Try
End Sub
Und um das Ganze noch ein bisschen schöner zu gestalten, kannst du noch die Explorer Theme hinzufügen.
<Runtime.InteropServices.DllImport("uxtheme.dll", _
  CharSet:=Runtime.InteropServices.CharSet.Unicode)>
Private Shared Function SetWindowTheme(hWnd As IntPtr, pszSubAppName As String, _
pszSubIdList As String) As Integer
End Function
 
Protected Overrides Sub CreateHandle()
    MyBase.CreateHandle()
    SetWindowTheme(Me.Handle, "explorer", Nothing)
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView Node umbenennen 
Autor: Marty**
Datum: 02.12.20 21:13

Dankeschön HenryV,

hätte noch eine Frage. Bei dem Verzeichnissen, denen kein Unterverzeichnis ist wird auch der +Knoten angezeigt. Nachdem man auf + klickt, verschwindet er, da ja nichts zum erweitern da ist.

Kann man das ab dem Start abstellen, das nur die Verzeichnisse mit Unterverzeichnissen mit einem + ausgestattet sind ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView Node umbenennen 
Autor: HenryV
Datum: 04.12.20 10:01

Ja das geht.
Private Sub FillTreeNode(ByVal dNode As TreeNode)
    Try
        Dim d As DirectoryInfo = CType(dNode.Tag, DirectoryInfo)
        For Each di As DirectoryInfo In d.GetDirectories
            Dim nNode As New TreeNode(di.Name) With {.Tag = di}
            dNode.Nodes.Add(nNode)
            Try
                If di.GetDirectories.Count > 0 Then
                    nNode.Nodes.Add("")
                End If
            Catch : End Try
        Next
    Catch : End Try
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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