2010-07-01 76 views
0

從摺疊狀態展開時,子節點中的項似乎每次都會自我複製。我認爲問題在於擴展之前需要清除內存。任何人都可以看到爲什麼會發生此事件。提前致謝。從摺疊狀態展開時,Treenode重複顯示

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 

回答

0

必須在該行:

ListLocalSubFolders(childNode, parentPath & childNode.Text) 

不可能是這個樣子:

ListLocalSubFolders(childNode, childNode.Text) 

否則你會得到f.e.像這樣:「C:\ C:\ $ Recycle.Bin」

+0

謝謝,但它實際上將父節點與子節點相結合,並使它們可擴展。 – jpavlov 2010-07-02 11:23:36