hola tengo este ejemplo por hay, bueno, el problema es el siguiente, tal como esta en la imagen si por ejemplo hago click en Child Node #2, ami me gustaria llamar un formulario, como lo hago,
(http://img530.imageshack.us/img530/153/treeview1al2.jpg)
cuando creas el nodo imagino que usas una clave (KEY) para cada nodo, así le dices que nodo es hijo de cual... por lo tanto esa clave te sirve para identificar de manera unica a cada nodo, pues bien puedes usar el evento NodeClick
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
select case node.key
case "nodo1"
from1.show
case "nodo"
form2.show.....
end select
End Sub
espero te sirva de algo
Mirate este tuto:
http://www.recursosvisualbasic.com.ar/htm/tutoriales/controles_visual_basic_menu.htm
Gracias EON pero no lo tengo claro, yo estoy liao, no me aclaro, cuando intento leer algunos codigo me pierdo, veras, mira es que estoy creando un troyano ok es tipo poison y bifronst, ok esto es lo siguiente
Private Sub Form_Load()
With TreeView1.Nodes
Set Root = .Add(, , , "Manegar")
.Add Root.Index, tvwChild, , "Archivos"
.Add Root.Index, tvwChild, , "Regedit"
.Add Root.Index, tvwChild, , "Buscar"
.Add Root.Index, tvwChild, , "Ventanas"
.Add Root.Index, tvwChild, , "Sitios de red"
.Add Root.Index, tvwChild, , "Consola remota"
Set Root = .Add(, , , "Información")
.Add Root.Index, tvwChild, , "Servicios"
.Add Root.Index, tvwChild, , "Procesos"
.Add Root.Index, tvwChild, , "Servidor"
.Add Root.Index, tvwChild, , "Computadora"
.Add Root.Index, tvwChild, , "Puertos activos"
Set Root = .Add(, , , "Capturar")
.Add Root.Index, tvwChild, , "Keylogger"
.Add Root.Index, tvwChild, , "Capturar video"
.Add Root.Index, tvwChild, , "Capturar audio"
.Add Root.Index, tvwChild, , "Capturar pantalla"
.Add Root.Index, tvwChild, , "Capturar Microfono"
Set Root = .Add(, , , "mensajes")
.Add Root.Index, tvwChild, , "Msgbox"
.Add Root.Index, tvwChild, , "Imprimir"
.Add Root.Index, tvwChild, , "Chat"
Set Root = .Add(, , , "Herramientas")
.Add Root.Index, tvwChild, , "Otras funciones"
.Add Root.Index, tvwChild, , "Transferencias"
.Add Root.Index, tvwChild, , "Uninstall servidor"
End With
End Sub
ok me vas entendiendo un poco mas, bueno cuando, por ejemplo hago click en "Procesos" me gustaria llamar un listview pero no se como hacerlo, e estado ojeando un codigo que hace eso, pero lo tengo complicado,,, please esto me urge, voy retrasado, ya que me falta solo eso, pero ir agregandole funciones, y para ponerme a escribir el servidor...
Ah... otra cosa por favor diganme que funciones mas agregarle, al cosas que no puedo hacer de momento lo que tengo hay, en el treeview, es lo que soy capaz de hacer, aunque mis conosimiento son pocos, pero esta sera mi primera aplicacion
Cita de: CeLaYa en 19 Junio 2007, 02:14 AM
cuando creas el nodo imagino que usas una clave (KEY) para cada nodo, así le dices que nodo es hijo de cual... por lo tanto esa clave te sirve para identificar de manera unica a cada nodo, pues bien puedes usar el evento NodeClick
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
select case node.key
case "nodo1"
from1.show
case "nodo"
form2.show.....
end select
End Sub
espero te sirva de algo
Gracias CeLaYa por tu ayuda pero esto no me funciona...
Private Sub arbol1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim nombrenodo As String
nombrenodo = Node.Text
'esto apra verificar que sea una punta del arbol
If Node.Children > 0 Then Exit Sub
Select Case nombrenodo
Case "Child Node #1"
form1.show
Case "Child Node #2"
form2.show
End Select
End Sub
Siendo nombrenodo en el caso de tu ejemplo "Child Node #1", pero si le pones otros nombres a los nodos, pues ya ahi adaptas el case.
Espero te sirva.
Arcangel
no me funciona de verdad
Ami ese me funciona a la perfeccion, puedes colocar el code tuyo para revisarlo?
Arcangel
el ListView lo tienes en otro form??? o lo quires cargar dentro del mismo form que el Treeview??
Cita de: CeLaYa en 20 Junio 2007, 00:06 AM
el ListView lo tienes en otro form??? o lo quires cargar dentro del mismo form que el Treeview??
si eso mismo, lo quiero cargar en el mismo form, solo que no se llamarlo
Yo no tengo ni idea de como es el Bifrost o el Poison pero esto te sirve ?
MsgBox TreeView1.Nodes.Item(TreeView1.SelectedItem.Index)
No entiendo muy bien que queres hacer, pero talvez que con algun IF o un Select Case, puedas sacar lo que necesitas con esa linea de code que te di, lo que hace esa linea es, hacer un MsgBox con el nombre del Item que clickeas.
Sancho.Mazorka :¬¬
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
bueno el tema este resuelto esto era lo que me hacia falta
Private Sub TreeView1_Click()
If TreeView1.Nodes.Item(TreeView1.SelectedItem.Index) = "Archivos" Then ListView1.Visible = True
If TreeView1.Nodes.Item(TreeView1.SelectedItem.Index) = "Regedit" Then ListView1.Visible = True
End Sub
graias a Sancho.Mazorka
bien de modo que cuando pulse archivos, llamare un listview u otra cosa, bueno bye
Pero hay un problema cuando pulso archivos y tambien regedit, cuando vuelvo a otra ves a pulsar en archivos no se me quiere mostrar..., es como si solo lo llamara una ves, no puedo retroceder