TreeView visual basic net !!




'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










( treeviewvisualbasicnet.html )- by Paolo Puglisi - Modifica del 17/12/2023