Aqui les dejo un pequeño Spliter para sus proyectos, lo hize ya que lo necesitaba para mi proyecto y pues me parecio buena idea compartirlo con vosotros, sé que hay muchos en la red y obviamente mejores que éste pero se que a alguien le interesara el code para a partir de alli mejorarlo y/o completarlo.
El spliter que les comparto es uno horizontal, es decir derecha-izquierda, falta aun el vertical y espero que alguien lo haga y lo comparta tambien, sino ya lo posteo cuando lo termine,.
En el ejemplo estoy redimensionando 2 Text (Text1 y Text2) y como Delimitador estoy usando un Label, claro que podria usar otros controles.
Es importante que la propiedad MousePointer del control que actuara como Delimitador este a (9 - Size WE) para que se vea mejor y un poco mas intuitivo.
Aqui va un ejemplo del diseño:
El control Label que es el Delimitador tiene como Nombre LBLDelim y este es su codigo:
Private Sub LBLDelim_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MOVER = True
End Sub
Private Sub LBLDelim_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If MOVER = True Then
LBLDelim.Left = LBLDelim.Left + X
SpliterWiz Text1, Text2, LBLDelim
End If
End Sub
Private Sub LBLDelim_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
MOVER = False
End Sub
MOVER ponerlo como Boolean en General
Mientras que el Sub que se encarga del redimensionado es:
Sub SpliterWiz(ControlI As Control, ControlD As Control, Delimitador As Control)
On Error GoTo ErrorSpliter
Dim a1 As Integer, a2 As Integer, d As Integer
ControlI.Width = Delimitador.Left - ControlI.Left
a1 = ControlD.Left
ControlD.Left = Delimitador.Left + Delimitador.Width
a2 = ControlD.Left
If a1 > a2 Then
d = a1 - a2
ControlD.Width = ControlD.Width + d
Else
d = a2 - a1
ControlD.Width = ControlD.Width - d
End If
ErrorSpliter:
End Sub
Presionar F5 y arrastar el Label, los cuadros de texto se redimensionaran.
A la espera del Vertical
Un saludo.