treeview node.ToString problem

M

markvbuser

Hi all,

I'm just learning vb2008 and i have a problem, I'm populating a
treeview with a hard drive
directory structure. This is my code:

I've populated the treeview with the available drives and the first
level of directories for each drive.

Then I'm using this code to get the selected node when the user
expands the node

--------------------------------------------------------------------------------------------------------------------------
Private Sub TreeView1_BeforeExpand(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles
TreeView1.BeforeExpand

Me.TreeView1.SelectedNode = e.Node
getsubDirectories(e.Node)

End Sub
--------------------------------------------------------------------------------------------------------------------------

Then i'm passing the selected node to this subroutine:

---------------------------------------------------------------------------------------------------------------------------
Public Sub getsubDirectories(ByVal baseNode)

Dim subDirectories() As String
Dim myNodeCollection As TreeNodeCollection =
Form1.TreeView1.SelectedNode.Nodes
Dim basePath As String = Replace(baseNode.ToString, "TreeNode:
", "")

For Each subNode In myNodeCollection
Dim subdirectoryPath As String = Replace(subNode.ToString,
"TreeNode: ", "")
Dim thisPath As String = basePath & subdirectoryPath

Try
subDirectories = Directory.GetDirectories(thisPath)
For Each thisDirectory In subDirectories
'add node to treeview
Next

Catch ex As Exception

End Try
Next

End Sub
----------------------------------------------------------------------------------------------------------------------------------

If the user expands the C drive the value for the selected node
contains "TreeNode: "

eg. TreeNode:C\:

and i need to strip the unwanted text to provide a valid path for
getdirectories.

How can i get the value without stripping the unwanted text ?

regards.
 
J

Jeff Gaines

How can i get the value without stripping the unwanted text ?

It may be easier to set the Tag of each node to the Path of the Directory
that it refers to, e.g.

tnNew = new TreeNode(DirecotryName, iconIndex, selectedIconIndex)
tnNew.Tag = Directory Path.

Then you can get the Path you need:

string newPath = (string)e.Node.Tag

(you may need to juggle this into VB)

You could also use the FullPath property of the TreeNode but that won't
work if you have a root node with the computer name, or if you use drive
names rather than drive paths in your display.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top