Results 1 to 2 of 2

Thread: [RESOLVED] [2005] - TreeView Drive Explorer

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Jan 2006
    Posts
    111

    Resolved [RESOLVED] [2005] - TreeView Drive Explorer

    I'm trying to get a treeview to show all drives on a machine including subfolders. I have accomplished this by looking at examples but have run into a problem with "TreeViewDrives_AfterSelect". If I remove the "If" Statement, the form will load with a message stating the an illegal path has been selected but then everything will work as expected. If I add the "If" statement, the form will execute without error, show all drives but they can't be accessed / will show no nodes etc.

    Code:
    Imports System.IO
    
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            'FIND ALL DRIVES
    
            Dim DrivesTop As TreeNode = TreeViewDrives.Nodes.Add("(Available Drives)")
            DrivesTop.ImageIndex = 2
            DrivesTop.SelectedImageIndex = 2
            DrivesTop.Tag = ""
    
            Dim drives As String() = Environment.GetLogicalDrives()
            Dim NUM As Integer = drives.Length
    
            Dim p As Integer = 0
    
            While p <> NUM
    
                Dim Output As String = Convert.ToString(drives(p))
    
                Dim AvailDrives As TreeNode = DrivesTop.Nodes.Add(Output)
                
                AvailDrives.Tag = Convert.ToString(drives(p))
                AvailDrives.ImageIndex = 1
                AvailDrives.SelectedImageIndex = 1
    
                p += 1
    
            End While
    
        End Sub
    
        Private Sub AddAllFolders(ByVal TNode As TreeNode, ByVal FolderPath As String)
    
            Try
    
                For Each FolderNode As String In Directory.GetDirectories(FolderPath)
    
                    Dim SubFolderNode As TreeNode = TNode.Nodes.Add(FolderNode.Substring(FolderNode.LastIndexOf("\c") + 1))
    
                    SubFolderNode.Tag = FolderNode
    
                    SubFolderNode.Nodes.Add("Loading...")
    
                Next
            Catch ex As Exception
    
                MsgBox("The following error occured: " & vbNewLine & vbNewLine & ex.Message)
    
            End Try
        End Sub
    
        Private Sub TreeViewDrives_BeforeExpand(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeViewDrives.BeforeExpand
    
            If e.Node.Nodes.Count = 1 AndAlso e.Node.Nodes(0).Text = "Loading..." Then
    
                e.Node.Nodes.Clear()
                AddAllFolders(e.Node, CStr(e.Node.Tag))
    
            End If
        End Sub
    
        Private Sub TreeViewDrives_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeViewDrives.AfterSelect
    
            If TreeViewDrives.SelectedNode.Nodes.Count = 1 AndAlso TreeViewDrives.SelectedNode.Nodes(0).Text = "Loading..." Then
    
                'TreeViewDrives.SelectedNode.Nodes.Clear()
    
                AddAllFolders(TreeViewDrives.SelectedNode, CStr(TreeViewDrives.SelectedNode.Tag))
    
            End If
    
    
        End Sub
    
    End Class

  2. #2

    Thread Starter
    Lively Member
    Join Date
    Jan 2006
    Posts
    111

    Re: [RESOLVED] [2005] - TreeView Drive Explorer

    Worked out that "DrivesTop" was causing the issue. Removed that and the "If" statement and now everything works as expected...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width