树节点从折叠展开时重复
子节点中的项目似乎每次从折叠状态展开时都会自我复制。我认为问题是在扩展之前需要清除内存。任何人都可以明白为什么会发生此事件。提前致谢。
Public Sub FillTree(ByVal s As String)
Dim nodeText As String = ""
Dim sb As New C_StringBuilder
With My.Computer.FileSystem
For i As Integer = 0 To .Drives.Count - 1
'** Build the drive's node text
sb.ClearText()
sb.AppendText(.Drives(i).Name.ToString)
nodeText = sb.FullText
'Check to see if DropDown Selection is the same as what has been read into i
If (sb.FullText = s) Then
'** Add the drive to the treeview
Dim driveNode As TreeNode
tvFolders.Nodes.Clear()
driveNode = tvFolders.Nodes.Add(nodeText)
driveNode.Tag = .Drives(i).Name
'** Add the next level of subfolders
ListLocalSubFolders(driveNode, .Drives(i).Name)
End If
Next
End With
End Sub
Private Sub ListLocalSubFolders(ByVal ParentNode As TreeNode, ByVal sParentPath As String)
' ' Add all local subfolders below the passed Local treeview node
Dim s As String
Try
For Each s In Directory.GetDirectories(sParentPath)
Dim childNode As TreeNode
childNode = ParentNode.Nodes.Add(FilenameFromPath(s))
childNode = Nothing
Next
Catch ex As Exception
End Try
End Sub
Private Sub tvFolders_BeforeExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles tvFolders.BeforeExpand
' Populate all child nodes below the selected node
Dim parentPath As String = e.Node.Tag
Dim childNode As TreeNode = e.Node.FirstNode
Do While childNode IsNot Nothing
ListLocalSubFolders(childNode, parentPath & childNode.Text)
childNode = childNode.NextNode
Loop
End Sub
Items in the child node seem to replicate themselves everytime when expanded from a collapsed state. I think the problem is that the memory needs to be cleared before I expand. Can anyone see why this event would occur. Thanks in Advance.
Public Sub FillTree(ByVal s As String)
Dim nodeText As String = ""
Dim sb As New C_StringBuilder
With My.Computer.FileSystem
For i As Integer = 0 To .Drives.Count - 1
'** Build the drive's node text
sb.ClearText()
sb.AppendText(.Drives(i).Name.ToString)
nodeText = sb.FullText
'Check to see if DropDown Selection is the same as what has been read into i
If (sb.FullText = s) Then
'** Add the drive to the treeview
Dim driveNode As TreeNode
tvFolders.Nodes.Clear()
driveNode = tvFolders.Nodes.Add(nodeText)
driveNode.Tag = .Drives(i).Name
'** Add the next level of subfolders
ListLocalSubFolders(driveNode, .Drives(i).Name)
End If
Next
End With
End Sub
Private Sub ListLocalSubFolders(ByVal ParentNode As TreeNode, ByVal sParentPath As String)
' ' Add all local subfolders below the passed Local treeview node
Dim s As String
Try
For Each s In Directory.GetDirectories(sParentPath)
Dim childNode As TreeNode
childNode = ParentNode.Nodes.Add(FilenameFromPath(s))
childNode = Nothing
Next
Catch ex As Exception
End Try
End Sub
Private Sub tvFolders_BeforeExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles tvFolders.BeforeExpand
' Populate all child nodes below the selected node
Dim parentPath As String = e.Node.Tag
Dim childNode As TreeNode = e.Node.FirstNode
Do While childNode IsNot Nothing
ListLocalSubFolders(childNode, parentPath & childNode.Text)
childNode = childNode.NextNode
Loop
End Sub
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这行必须:
不是这样的:
?
否则你会得到这样的东西:“C:\C:\$Recycle.Bin”
Must this line:
not look like this:
?
Otherwise you will get f.e. something like this: "C:\C:\$Recycle.Bin"