'Imports System
'Imports System.Collections.Generic 'Imports System.ComponentModel 'Imports System.Data 'Imports System.Drawing 'Imports System.Text 'Imports System.Windows.Forms Imports System.IO Public Class MyDirectoryTree ' // https://www.vbforums.com/showthread.php?512092-Show-folders-files-in-TreeView ' // Converti da C# as Vb.Net : https://converter.telerik.com/ Private Sub Form2_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load Dim drives As String() = Environment.GetLogicalDrives() Dim myPC As TreeNode = DirectoryTree.Nodes.Add("MYPC", "My Computer") For Each drive As String In drives Dim tmp As TreeNode = myPC.Nodes.Add(drive, drive) Try If Directory.GetDirectories(drive).Length <> 0 Then tmp.Nodes.Add("[EMPTY]", "") Catch Continue For End Try Next End Sub Private Sub DirectoryTree_AfterCheck(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles DirectoryTree.AfterCheck For Each node As TreeNode In e.Node.Nodes node.Checked = e.Node.Checked Next End Sub Private Sub DirectoryTree_BeforeExpand(ByVal sender As Object, ByVal e As TreeViewCancelEventArgs) Handles DirectoryTree.BeforeExpand Dim tmp As TreeNode() Dim newNode As TreeNode tmp = e.Node.Nodes.Find("[EMPTY]", False) If tmp.Length > 0 Then e.Node.Nodes.Clear() If Directory.Exists(e.Node.Text) Then For Each dir As String In Directory.GetDirectories(e.Node.Text) tmp = e.Node.Nodes.Find(dir, False) If tmp.Length = 0 Then newNode = e.Node.Nodes.Add(dir, dir) newNode.Checked = e.Node.Checked newNode.Tag = newNode.Checked newNode.ImageIndex = 0 Try If Directory.GetDirectories(dir).Length <> 0 Then newNode.Nodes.Add("[EMPTY]", "") Catch Continue For End Try newNode = Nothing End If Next For Each file As String In Directory.GetFiles(e.Node.Text) newNode = e.Node.Nodes.Add(file, file) newNode.Tag = newNode.Checked newNode.ImageIndex = 1 Next End If End Sub Private Sub DirectoryTree_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles DirectoryTree.NodeMouseClick TextBox1.Text = e.Node.Text End Sub End Class |