Formulario con dos paneles

22/02/2007 - 17:21 por DaniBeltra | Informe spam
Hola grupo, tengo creado un formulario con dos paneles, el de la izquierda
posee un arbol de desplazamiento por la aplicación y el de la derecha me
gustaría que cada vez que hago doble click sobre una rama del arbol,
contenga la aplicación asociada a dicha rama. Tipo "Marco" en una web.
¿Alguien me puede echar un cable?
 

Leer las respuestas

#1 Vinchenzo vinç
24/02/2007 - 17:28 | Informe spam
"DaniBeltra" <@> escribió en el mensaje news:uZu$
Hola grupo, tengo creado un formulario con dos paneles, el de la izquierda
posee un arbol de desplazamiento por la aplicación y el de la derecha me
gustaría que cada vez que hago doble click sobre una rama del arbol,
contenga la aplicación asociada a dicha rama. Tipo "Marco" en una web.
¿Alguien me puede echar un cable?



Hola,
si con «..doble click sobre una rama del arbol» indicas que se trata de un nodo del componente 'TreeView', y con la frase «..contenga la aplicación asociada a dicha rama.» te refieres a un formulario de la aplicación, una posible solución sería usar la propiedad '.Tag' del cada nodo para almacenar el nombre interno del formulario que asocias al nodo en cuestión, e interceptando el evento '_NodeMouseDoubleClick' cargar el formulario incrustándolo en el panel.
Por ejemplo:

'*****************
Private Sub TuÁrbol_NodeMouseDoubleClick(···)
If e.Node.Nodes.Count > 0 Then Exit Sub 'Tiene nodos hijo

Dim MiForm As New Windows.Forms.Form
Dim Tipo As System.Type
'Obtienes el tipo y una referencia del formulario al que indica el nodo seleccionado
Tipo = Type.GetType(My.Application.Info.Title.ToString & "." & e.Node.Tag.ToString)
MiForm = Activator.CreateInstance(Tipo)


With MiForm
' Lo acoplas al panel
.FormBorderStyle = Windows.Forms.FormBorderStyle.None
.Width = Me.Panel1.Width
.Height = Me.Panel1.Height
.TopLevel = False 'No puede ser de nivel superior
With Panel1
' "Vaciamos" el panel, o haz lo creas más conveniente
If .Controls.Count > 0 Then Panel1.Controls.Clear()
' Añades la ventana al panel
.Controls.Add(MiForm)
End With
.Show() ' Y muestras la ventana
End With
End Sub
'*****************


Saludos
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/micr....dotnet.vb
( i ) Temperancia en el foro:
http://support.microsoft.com/defaul...newsreglas

Preguntas similares