vb.net - treeview没有显示正确的选择项

时间:2011-08-29 23:24:26

标签: vb.net treeview

我在树状视图中以编程方式选择项目时遇到问题。

我有一个使用节点和子节点构建树视图的函数,当我设置treeview.selecteditem = somenode时,树视图显示为另一个节点的另一个子节点(有时是正确的节点,它看起来是随机的? )

功能如下:

                F.treGrupos.Nodes.Clear()

            'build the first level nodes
            For Each g In m_ModeloGruposSeleccionado.Grupos
                n = F.treGrupos.Nodes.Add("g" & g.Value.s_IdGrupo.ToString, g.Value.s_IdGrupo.ToString)
            Next

            'add the subnodes where they belong
            For Each Item In m_ConsultaSeleccionada.Indice
                If F.treGrupos.Nodes.ContainsKey("g" & Item.Value.IdGrupo) Then
                    n = F.treGrupos.Nodes("g" & Item.Value.IdGrupo)                       
                    n.Nodes.Add("g" & Item.Key.ToString, Item.Value.ItemNodo)                       
                End If
            Next

            'just testing
            F.treGrupos.Refresh()
            F.treGrupos.CollapseAll()
            F.treGrupos.SelectedNode = Nothing


            'm_GrupoSeleccionado has the node i want to select
            If m_GrupoSeleccionado > 0 Then
                n1 = F.treGrupos.Nodes("g" & m_GrupoSeleccionado.ToString)

                Debug.Print(n1.Name) 'ok here

                If Not n1 Is Nothing Then
                    F.treGrupos.SelectedNode = n1
                    n1.ExpandAll()
                End If
                Debug.Print(F.treGrupos.SelectedNode.Name) 'ok here too!!??

            End If

debug.print似乎打印了正确的节点。如果m_GrupoSeleccionado = 3,则打印“g3”,即存在的节点。但树视图显示任意(蓝色背景)任何随机子节点; g1或g4甚至不是节点!它似乎与m_GrupoSeleccionado的任何值一起发生。

有什么想法吗?

问候!

0 个答案:

没有答案