|
-
Nov 8th, 2007, 08:11 AM
#1
Thread Starter
Lively Member
[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
-
Nov 8th, 2007, 10:15 PM
#2
Thread Starter
Lively Member
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
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|