Recorrer un Treeview en .net 2003

Necesito conocer la posición de un nodo especifico de mi árbol para posteriormente mostrar en un formulario la información detallada del mismo

1 Respuesta

Respuesta
1
El árbol ya lo tengo lleno lo que necesito es recorrerlo y saber la posición de un nodo especifico para posteriormente enviarlo como parámetro al formulario.
Al seleccionar el nodo: nodo. Fullpath
Hola disculpa intente realiza lo que me indicas pero no me funciono, te envío un código de la función con la que lleno el treeview y lo que necesito es que al darle doble click sobre un nodo me indique su posición, y de nuevo mil disculpa
Private Sub frm_vista_prv_cand_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sCnn As String = "Server= " & gserver & "; database=" & gdatabase & "; integrated security=yes"
Dim sSel As String
Dim cnn As New SqlConnection(sCnn)
Dim nodo As TreeNode
?
?
' crear los DataAdapter
Dim oDAProfesiones As New SqlDataAdapter("SELECT * FROM ben_prof_descripcion ORDER BY cod_prof", sCnn)
Dim oDACandidatos As New SqlDataAdapter("SELECT convert(varchar(70),cod_prof)cod_prof,cod_cand,+' - '+nombre+' - '+apellido+' - '+telefono as datos_perso FROM ben_deb_candidatos ORDER BY cod_cand,nombre", sCnn)
' crear conjunto de datos
Dim oDataSet As New DataSet
' abrir la conexión
cnn.Open()
' utilizar los adaptadores para llenar el dataset con las tabla
oDAProfesiones.Fill(oDataSet, "ben_prof_descripcion")
oDACandidatos.Fill(oDataSet, "ben_deb_candidatos")
' cerrar la conexión
cnn.Close()
' defino variables del tipo DataTable
Dim oTablaProfesiones As DataTable
Dim oTablaCandidatos As DataTable
' asigno a las variables los datos de las tablas del DataSet
oTablaProfesiones = oDataSet.Tables("ben_prof_descripcion")
oTablaCandidatos = oDataSet.Tables("ben_deb_candidatos")
' lleno la vista con el contenido de la Tabla Territories
oVista = oTablaCandidatos.DefaultView
' deshabilita la actualización en pantalla del control TreeView
TreeView1.BeginUpdate()
' defino variable del tipo DataRow
Dim Registro As DataRow
' creo un nodo raiz (el nombre Country, puede ser cualquier texto como Raíz, Root, etc.)
nodo = TreeView1.Nodes.Add("Profesiones")
For Each Registro In oTablaProfesiones.Rows
' agrego el nodo en el segundo nivel
nodo = TreeView1.Nodes(0).Nodes.Add(Trim(Registro("descripcion")))
' si no hay un nodo raiz, se usaría la siguiente línea
'nodo = TreeView1.Nodes.Add(Trim(Registro("RegionDescription")))
' realizo un filtro dentro de la vista
oVista.RowFilter = "cod_prof = " & Registro("cod_prof")
?
' ciclo para recorrer la vista previamente filtrada
Dim a As Integer
?
For a = 0 To oVista.Count - 1
' agrego el nodo en el tercer nivel
nodo.Nodes.Add(Trim(oVista.Item(a).Row("datos_perso")))
?
'nodo.Nodes.Add(Trim(oVista.Item(a).Row("apellido")))
Next
'prueba = oTablaCandidatos.Rows(2)("cod_cand")
' expando todos los nodos de árbol secundario
nodo.ExpandAll()
Next
' habilita la actualización en pantalla del control TreeView
TreeView1.EndUpdate()
' modifico la propiedad AllowDrop a True para poder realizar Drag and Drop
TreeView1.AllowDrop = True
' modifico la propiedad Sorted a True para que los nodos estén ordenados
TreeView1.Sorted = True
' MsgBox(prueba)
End Sub
Cuando llenas el treeview no tienes que hacer eso allí
Debes hacerlo en el evento que decidas DESPUÉS de llenado el treeview, por ejemplo el evento click te indica cual es el nodo seleccionado, en ese momento tomas el etxto, el fullpath o lo que necesites de ese nodo seleccionado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas