Hola Dradi, bueno primero que nada quiero agradecerte por tomarte el tiempo de ayudarme, he estado usando tu codigo pero me han salido algunos problemitas.
Al principio no reconocia
Dw.RowFilter = "CuePadre = '0'"
salía "no se puede encontrar la columna "cuepadre" " así que lo cambié a "CuentaPadre" que es el verdadero nombre del campo.
Lo otro, es que no entra al ciclo for each
For Each Row As DataRow In Dt.Rows
por lo tanto en la pantalla sólo aparece "Plan de Cuentas" y al hacer dblclick no hace nada, por lo que cambié
Dt = Dw.ToTable por Dt = Dw.Table
y ahí si entra al primer ciclo For Each Row As DataRow In Dt.Rows
pero aparece en cada nodo solo el primer campo de la tabla, el cual no necesito visualizar, y aparecen todos los registros de la tabla no solo los cinco primeros nodos nivel1,nivel2,nivel3,nivel4,nivel5, por lo cual se demoran en aparecer los datos en pantalla.
Para que entre a los dos siguientes For Each debo cabiar de nuevo
Dt = Dw.ToTable por Dt = Dw.Table
sino no entra ni a
For Each RowH As DataRow In Dt.Rows ni a
For Each RowN As DataRow In Dt.Rows
pero cuando lo cambio, y entra a cualquiera de los dos, se convierte en un buclé infinito.
Para que en los primeros nodos mostrara el numero de cuenta cambié la consulta a ("select Cuenta,Descripcion,CuentaPadre,Nivel from Cuentas") pero los
repite, debiese mostrar solo aquellos cuya cuenta padre es 0 o NULL,o sea cinco en total, y creo que el campo cuenta no aparece correctamente escrito,
si coloco menos datos en la consulta ("select Cuenta,Descripcion,CuentaPadre from Cuentas"), aparece el sgte error
Nodo.Nodes.Add(Row(0) + " - " + Row(3)) 'No se puede encontrar la columna 3.
así que la tengo que dejar así ya que si coloco "select *" , me muestra el primer campo y no lo necesito visualizar.
Bueno, eso es, nunca pensé que fuera tan difícil llenar un treeview, espero me puedas seguir ayudando.
Muchas gracias.