|
Es frecuente querer dividir verticalmente
la interfaz de usuario en dos partes. Como en el Explorador de Windows,
por ejemplo: en el panel de la izquierda una vista en árbol (TreeView) muestra
las carpetas de su sistema; el panel derecho incluye los contenidos del
elemento seleccionado en el panel izquierdo.
Para conseguir esta GUI dividida, puede usar un control ActiveX de terceros.
Y también puede dividirlo con un PictureBox y el evento VB DragDrop. Aquí
le decimos cómo hacerlo.
Primero coloque un PictureBox en su formulario, y llámelo
"picSplitter". Después ponga un TextBox llamado "txtLeftPane"
en su formulario. Y a continuación escriba esto en el módulo de código
del formulario:
Private Sub Form_DragDrop(Source As Control, X As
Single, Y As Single)
On Error Resume Next
If TypeName(Source) = "PictureBox" Then
Source.Left = X - 100
Form_Resize
End If
End Sub
Private Sub Form_Load()
Me.picSplitter.DragMode = vbAutomatic
End Sub
Private Sub Form_Resize()
On Error Resume Next
Me.picSplitter.Top = -25000
Me.picSplitter.Height = 50000
Me.picSplitter.Width = 200
' Resize the rest of your controls to fit the splitter
Me.txtLeftPane.Left = 0
Me.txtLeftPane.Width = Me.picSplitter.Left
Me.txtLeftPane.Height = Me.Height - 400
Me.txtLeftPane.Top = 0
End Sub
Private Sub txtLeftPane_DragDrop(Source As Control,
X As Single, Y As Single)
On Error Resume Next
If TypeName(Source) = "PictureBox" Then
Source.Left = X - 100
Form_Resize
End If
End Sub
Ya tiene un GUI con dos paneles. (El panel de la derecha está en blanco
- he de dejar algo de código para usted...) Si ejecuta el proyecto, quita
el splitter, y lo arrastra a otra localización en el formulario, el splitter
se mueve, y el TextBox se redimensiona. ¿Captó la idea?
Puede añadir tantos controles al formulario como quiera;
sólo tiene que recordar implementar el nuevo evento DragDrop del control
con código similar al ejemplo de arriba.
|