我有一个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'然后它就会消失。
答案 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()