TreeView不显示最后一个节点

时间:2015-05-13 22:20:32

标签: vb.net treeview

我有一个TreeView,我基本上就像这样填充

For Each s As Store In storeList
    Dim n As TreeNode = Nothing
    n = New TreeNode(s.StoreName) With {.Name = s.StoreID, .Tag = s}
    tvStores.Nodes.Add(n)       
Next

这通常非常正常,但我们的一位客户发现它不会将最后添加的节点添加到列表中。例如,如果我们有100个元素,它将添加所有100个,但只显示99.我能够单步执行代码并查看添加到树视图中的最后一个,但它仍然无法显示。

我尝试使用较小的列表,较大的列表,不同的项目,但它仍然不会显示。这个方法适用于我们1000个用户中的999个,它只是这个位置不会出现的一个位置。甚至有关故障排除的建议?我的意思是它从SQL中拉回所有正确的值,在for循环中遍历每个值,在没有问题的情况下进入'add'然后它就会消失。

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

tvStores.BeginUpdate()
For Each s As Store In storeList
   Dim n As TreeNode = Nothing
   n = New TreeNode(s.StoreName) With {.Name = s.StoreID, .Tag = s}
   tvStores.Nodes.Add(n)       
Next
tvStores.EndUpdate()

答案 1 :(得分:0)

也许您可以在循环结束时添加以下块

Dim lastNode as TreeNode
'
lastNode = tvStores.Nodes(tvStores.Nodes.Count - 1)
If Not lastNode.IsVisible Then lastNode.EnsureVisible()