none
Trabajar con TreeView RRS feed

  • Pregunta

  • Hola amigos, aqui estoy nuevamente recurriendo a su ayuda...

    Mi consulta es la siguiente... necesito hacer un Form para la mantención de usuarios, o sea, definir en mi sistema Las opciones a las que podrá acceder cada persona... para eso pensé el objeto TreeView, diseñarlo con ramas de tipo Check, crear las raices con los menús principales y luego dentro de cada uno, las opciones correspiendes... ya que en Vb 6.0 hice algo muy similar antes...

     

    Mi consulta es... si al igual que en VB 6.0 ¿Me conviene ir diseñando las raices y ramas del TreeView mediante código o sirve de todas formas con el diseñar que viene implementado en VB .Net 2005?...

     

    O si alguien tiene alguna idea de como hacer este tipo de pantallas o con algun otro objeto... fuera tan amable de sugerirme...

     

    Muchas gracias a todos!!...

    viernes, 2 de noviembre de 2007 17:48

Respuestas

  • Hola de nuevo,

     

    Aquí tienes dos ejemplos de como añadir esos valores a los checks del treeview y como obtenerlos. En tí queda ahora ajustarlos a tus tablas y guardar y recuperar

     

    Bloque de código

    Public Sub AniadirNodos()

    Dim tabla As New DataTable

    Dim nodo As TreeNode

    For i As Integer = 0 To tabla.Rows.Count - 1

    nodo = New TreeNode

    nodo.Checked = Boolean.Parse(tabla.Rows(i)("ColumnaBooleana"))

    nodo.Text = tabla.Rows(i)("Otra columna o número de la misma")

    Next

    End Sub

     

     

    Como ves en este primer código, puedes cambiar el datatable por tu tabla del dataset o por otro datatable para agregar el check y otros valores(yo solo puse dos como ejemplo).

    Bloque de código

    Public Sub ObtenerNodos()

    Dim lista As New List(Of Boolean)

    For i As Integer = 0 To Me.TreeView1.Nodes.Count - 1

    lista.Add(Me.TreeView1.Nodes(i).Checked)

    Next

    End Sub

     

     

    Aquí obtienes el check y su estado, pero también podrías haberlo guardado en un nuevo TreeNode y obtener así todos sus valores.

     

    Bueno, ya me contarás que tal te fue.

     

    Un Saludo

    viernes, 2 de noviembre de 2007 23:43
    Moderador

Todas las respuestas

  • Hola,

     

    Es lo mismo hacerlo de cualquiera de las dos formas. Lo puedes hacer desde el diseñador, si no va a cambiar y si van a cambiar sus nodos dependiendo de tablas puedes hacerlo desde código.

     

    Un Saludo

     

    viernes, 2 de noviembre de 2007 18:49
    Moderador
  • En realidad lo unico que va a cambiar es el estado de los checkbox de cada nodo, lo demas siempre se mantiene igual...

    Gracias.

     

    viernes, 2 de noviembre de 2007 19:10
  • Hola,

     

    Si es solo eso, podrás hacerlo en tiempo de diseño y tratar los checks con algún evento.

     

    Un Saludo

     

    viernes, 2 de noviembre de 2007 19:15
    Moderador
  • Gracias

    Lo que aún no me podido lograr, es saber como puedo activar esos check de cada nodo a medida que voy leyendo mi Tabla en la B.D. y tampoco no sé con que instrucción se guarda es estado del check de los nodos.

     

    viernes, 2 de noviembre de 2007 19:23
  • Hola de nuevo,

     

    Aquí tienes dos ejemplos de como añadir esos valores a los checks del treeview y como obtenerlos. En tí queda ahora ajustarlos a tus tablas y guardar y recuperar

     

    Bloque de código

    Public Sub AniadirNodos()

    Dim tabla As New DataTable

    Dim nodo As TreeNode

    For i As Integer = 0 To tabla.Rows.Count - 1

    nodo = New TreeNode

    nodo.Checked = Boolean.Parse(tabla.Rows(i)("ColumnaBooleana"))

    nodo.Text = tabla.Rows(i)("Otra columna o número de la misma")

    Next

    End Sub

     

     

    Como ves en este primer código, puedes cambiar el datatable por tu tabla del dataset o por otro datatable para agregar el check y otros valores(yo solo puse dos como ejemplo).

    Bloque de código

    Public Sub ObtenerNodos()

    Dim lista As New List(Of Boolean)

    For i As Integer = 0 To Me.TreeView1.Nodes.Count - 1

    lista.Add(Me.TreeView1.Nodes(i).Checked)

    Next

    End Sub

     

     

    Aquí obtienes el check y su estado, pero también podrías haberlo guardado en un nuevo TreeNode y obtener así todos sus valores.

     

    Bueno, ya me contarás que tal te fue.

     

    Un Saludo

    viernes, 2 de noviembre de 2007 23:43
    Moderador
  • Un millón de gracias Fran, lo probaré y te cuento...

     

    sábado, 3 de noviembre de 2007 1:46
  • Hola!! al igual que CyberMauro estoy utilizando un Treeview para asignar permisos a usuarios.
    Cargo a partir de una base de datos un treeview que me sirve para asignar las opciones a las que tienen acceso los usuarios, desde allí guardo éstas opciones en una tabla. Pero tengo problemas para volver a chequear los nodos ya seleccionados y los necesito cargar para poder editar (agregar o quitar) las opciones de los usuarios.
    Necesito que me ayuden a realizar ésto de forma eficiente, ya que hasta ahora realizo un recorrido al treeview por cada nodo chequeado pero ésto se demora demasiado. ...
    Agradezco toda la ayuda que me puedan brindar 
    Me pueden enviar código a marthitalonzo@hotmail.com
    lunes, 19 de noviembre de 2007 17:50