【问题标题】:VB.NET TreeviewVB.NET 树视图
【发布时间】:2013-08-01 20:08:44
【问题描述】:

好的,我有一个树视图,我正在使用数据表从数据库中填充。该查询工作并生成一个包含两条记录的数据表。我使用的字段有以下内容:

  1. sksorter\images\africa\9544\high resolution\
  2. sksorter\images\africa\9545\high resolution\

我正在尝试生成一棵树

sksorter

-图片

--非洲

---9544

----高分辨率

---9545

----高分辨率

它可以工作,但它缺少最终的高分辨率节点......我很确定这是因为我使用的方法在创建它之前对每个节点进行了查找,然后它看到“高分辨率”存在并且不存在创建它!

我不知所措??谢谢!!

For Each dt As DataRow In dtData.Rows
    'load the node we are as the base node?      
    Dim stTemp As String()
    stTemp = dt.Item(0).ToString.Split("\")
    Dim otest As String

    For Each strNode As String In stTemp
        If strNode <> String.Empty Then
            'Index = Dir.LastIndexOf("\")
            otest = String.Empty
            otest += strNode + "\"
            Dim nodes As TreeNode() = trvFolders.Nodes.Find(otest, True) 
            If nodes.Length = 0 Then
                If basenode Is Nothing Then
                    basenode = trvFolders.Nodes.Add(otest, strNode)
                Else
                    basenode = basenode.Nodes.Add(otest, strNode)
                End If
            Else
                basenode = nodes(0)
            End If
        End If
    Next
Next

【问题讨论】:

    标签: vb.net treeview


    【解决方案1】:

    问题出在这一行:

    Dim nodes As TreeNode() = trvFolders.Nodes.Find(otest, True)
    

    “高分辨率”这个词已经在节点树中,它在第二遍找到它并且什么都不做。

    这就是我修改你的代码的方式,它只会从当前位置而不是从一开始搜索节点:

    Dim parentNode As TreeNode = Nothing
    For Each strNode As String In stTemp
      If strNode <> String.Empty Then
        Dim otest As String = strNode + "\"
        If parentNode Is Nothing Then
          Dim nodes As TreeNode() = trvFolders.Nodes.Find(otest, False)
          If nodes.Length = 0 Then
            parentNode = trvFolders.Nodes.Add(otest, strNode)
          Else
            parentNode = nodes(0)
          End If
        Else
          Dim nodes As TreeNode() = parentNode.Nodes.Find(otest, False)
          If nodes.Length = 0 Then
            parentNode = parentNode.Nodes.Add(otest, strNode)
          Else
            parentNode = nodes(0)
          End If
        End If
      End If
    Next
    

    【讨论】:

    • 谢谢!!这就是我认为对列表视图查找没有太多经验的原因,并且不认为您可以在特定节点而不是整个树上执行此操作,当然您可以...谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多