Bueno para cargar un ListView puedes hacer 2 cosas:
1. En tiempo de diseño pones el listview y le dices que sea invisible y al hacer click en uno de los nodos que lo vuelva visible y puedes establecer coordenadas para que aparezca en cierta parte de programa y/o para confugurar las columnas
ejemplo:
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
select case node.text
case "Archivos"
ListView1.ColumnHeaders.Add 0, , "Columna1", ancho, alineación
ListView1.ColumnHeaders.Add 1, , "Columna2", ancho, alineación
ListView1.ColumnHeaders.Add 2, , "Columna3", ancho, alineación
ListView1.Move Izquierda, Arriba, Ancho, Largo
ListView1.Visible = True
case ....
end select
End Sub
2. Otra cosa que puedes hacer es crear un arreglo de listViews y cargarlos segun necesites, esto te serviria en caso de que ocupes más de un listview al mismo tiempo
ejemplo:
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
select case node.text
case "Archivos"
Load ListView1(ListView1.Count + 1) ' Aqui creas una nueva instancia del control
ListView1(ListView1.Count).ColumnHeaders.Add 0, , "Columna1", ancho, alineación
ListView1(ListView1.Count).ColumnHeaders.Add 1, , "Columna2", ancho, alineación
ListView1(ListView1.Count).ColumnHeaders.Add 2, , "Columna3", ancho, alineación
ListView1(ListView1.Count).Move Izquierda, Arriba, ancho, Largo
ListView1(ListView1.Count).Visible = True
end select
End Sub
esto último tiene una limitante si quieres descarlos listviews tendras que hacerlo del indice mayor al menor, es decir si tienes 4 listviews ListView(1), ListView(2),ListView(3),ListView(4), y quieres descargar el 2 tendiras que descargar primero el 4 y luego el 3