2010-07-01 4 views
0

Элементы в дочернем узле, по-видимому, реплицируются каждый раз при расширении из сложенного состояния. Я думаю, проблема в том, что память должна быть очищена, прежде чем я расширяюсь. Может ли кто-нибудь понять, почему это событие произойдет. Заранее спасибо.Treenode Duplicate при расширении с развалом

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

 Смежные вопросы

  • Нет связанных вопросов^_^