程序重启时Treenode不会出现

时间:2014-01-20 12:36:35

标签: vb.net treeview

以下代码从列表框上的双击事件运行,该事件将所选文件复制到树视图上的选定节点目录,然后将所选文本添加为​​子节点。

它似乎工作正常但是当程序关闭然后重新打开它没有显示子节点。

任何指针........

    Dim Copy2 = aMailbox & tvProgress.SelectedNode.Text & "\" & lstRequired.Text
    Dim Copy1 = rPath & "\" & lstRequired.Text

    If File.Exists(Copy2) Then
        MsgBox("File already added. Please edit from the view above", MsgBoxStyle.OkOnly, "Lynx Control Panel")
        Exit Sub

    End If

    If File.Exists(Copy1) Then
        File.Copy(Copy1, Copy2)
        tvProgress.SelectedNode.Nodes.Add(lstRequired.Text)
        tvProgress.ExpandAll()
    Else
        MsgBox("This file no longer exists in your Lynx Repository. Please select another", MsgBoxStyle.OkOnly, "Lynx Control Panel")
        Exit Sub
    End If

以下代码完全取自第一个列表框的双击事件

Dim n As Integer
    Dim i As Integer = lstPlanned.SelectedIndex

    If lstPlanned.SelectedItems.Count = 0 Then Exit Sub

    For n = 0 To UBound(AllDetails)

        If AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps = lstPlanned.SelectedItem Then

            If Not My.Computer.FileSystem.DirectoryExists(zMailbox & AllDetails(n).uFile) Then

                MsgBox("No files located for " & vbNewLine & (AllDetails(n).uName & " (" & AllDetails(n).uCode) & ")" & vbNewLine & " " & vbNewLine & "Please try another...", MsgBoxStyle.OkOnly, "Lynx Control Panel")
                Exit Sub
            End If

            System.IO.Directory.CreateDirectory(aMailbox & "\" & AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps)

            For Each f In Directory.GetFiles(zMailbox & AllDetails(n).uFile, "*.dbf")
                If File.Exists(f) Then
                    File.Copy(f, Path.Combine(aMailbox & "\" & AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps, Path.GetFileName(f)), True)
                End If
            Next

            For Each f In Directory.GetFiles(zMailbox & AllDetails(n).uFile, "*.ini", SearchOption.AllDirectories)
                If File.Exists(f) Then
                    File.Copy(f, Path.Combine(aMailbox & "\" & AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps, Path.GetFileName(f)), True)
                End If
            Next

            For Each f In Directory.GetFiles(zMailbox & AllDetails(n).uFile, "*.txt", SearchOption.AllDirectories)
                If File.Exists(f) Then
                    File.Copy(f, Path.Combine(aMailbox & "\" & AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps, Path.GetFileName(f)), True)
                End If
            Next


            tvProgress.Nodes.Remove(rN)
            tvProgress.Nodes.Insert(0, rN)
            tvProgress.Nodes.Add(New TreeNode(AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps))


            If i >= 0 And i < lstPlanned.Items.Count Then
                lstPlanned.Items.RemoveAt(i)


            End If
            Exit Sub
        End If
    Next

1 个答案:

答案 0 :(得分:1)

认为这是你想要的......可能;)

       ...

        System.IO.Directory.CreateDirectory(aMailbox & "\" & AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps)

        ' After the Dir is created Node is added to the TreeView
        tvProgress.Nodes.Remove(rN)
        tvProgress.Nodes.Insert(0, rN)
        tvProgress.Nodes.Add(New TreeNode(AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps))

        For Each f In Directory.GetFiles(zMailbox & AllDetails(n).uFile, "*.dbf")
            If File.Exists(f) Then
                File.Copy(f, Path.Combine(aMailbox & "\" & AllDetails(n).uName & " - " & AllDetails(n).uCode & " - " & AllDetails(n).uOps, Path.GetFileName(f)), True)

                'As ParentNode already exists as Pos 0 you can add child nodes to it
                tvProgress.Nodes(0).Nodes.Add(Path.GetFileName(f))

            End If
        Next

        ...