SelectNode selecciona otro nodo?
Publicado por Leo (2 intervenciones) el 23/08/2011 02:31:26
Hola!
Tengo un problema; tengo un treeview al que le cargo nodos, luego quiero seleccionar uno específicamente pero se selecciona cualquier otro. El código es éste:
Bueno, la cosa es que a veces, cuando ejecuto esta función que limpia el árbol, lo arma nuevamente e intenta seleccionar uno de los nodos, selecciona cualquier cosa. Por ejemplo, m_gruposeleccionado contiene "2", y en lugar de seleccionarme el segundo nodo primario (el "g2"), selecciona, por ejemplo, un subnodo (al azar?) del nodo 1 o del nodo 4, abriendo la rama de esos nodos. No le encuentro sentido en absoluto.
¿Alguien tiene alguna idea?
Gracias!
Tengo un problema; tengo un treeview al que le cargo nodos, luego quiero seleccionar uno específicamente pero se selecciona cualquier otro. El código es éste:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
70: F.treGrupos.Nodes.Clear()
'ahora cargo los nodos primarios
90: For Each g In m_ModeloGruposSeleccionado.Grupos
100: n = F.treGrupos.Nodes.Add("g" & g.Value.s_IdGrupo.ToString, g.Value.s_IdGrupo.ToString)
110: Next
'cargué los grupos en el árbol, ahora cargo los elementos (subnodos) de acuerdo el grupo
120: For Each Item In m_ConsultaSeleccionada.Indice
130: If F.treGrupos.Nodes.ContainsKey("g" & Item.Value.IdGrupo) Then 'comprobacion de rutina
140: n = F.treGrupos.Nodes("g" & Item.Value.IdGrupo) 'selecciono el nodo "base"
150: If Not n Is Nothing Then 'si encontré el nodo, hay un grupo 'comprobación de rutina
160: n.Nodes.Add("g" & Item.Key.ToString, Item.Value.ItemNodo)
190: End If
200: Else
230: Next
'hasta aqui todo funciona perfecto, ahora viene la parte con problemas
F.treGrupos.SelectedNode = Nothing
F.treGrupos.CollapseAll()
'm_seleccionado contiene el código del nodo que quiero seleccionar
270: If m_GrupoSeleccionado > 0 Then
For Each n1 In F.treGrupos.Nodes 'solo recorre los nodos "base"
If n1.Name = "g" & m_GrupoSeleccionado.ToString Then
Debug.Print(n1.Name) 'comprobacion de que encontró el nodo que coincide con el código; cosa que resulta exitosa
F.treGrupos.SelectedNode = n1
n1.ExpandAll()
Exit For
End If
Next
390: End If
Bueno, la cosa es que a veces, cuando ejecuto esta función que limpia el árbol, lo arma nuevamente e intenta seleccionar uno de los nodos, selecciona cualquier cosa. Por ejemplo, m_gruposeleccionado contiene "2", y en lugar de seleccionarme el segundo nodo primario (el "g2"), selecciona, por ejemplo, un subnodo (al azar?) del nodo 1 o del nodo 4, abriendo la rama de esos nodos. No le encuentro sentido en absoluto.
¿Alguien tiene alguna idea?
Gracias!
Valora esta pregunta
0