Io avevo fatto più o meno così:
codice:
Dim WithEvents timer1 As New Timer
Dim aperto As Boolean = False
Dim incremento As Integer
Dim dimensione As Integer
Private Sub apri_chiudi() Handles Button1.Click
If aperto = False Then
incremento = 4
Else
incremento = -4
End If
timer1.Interval = 1
timer1.Start()
Button1.Enabled = False
End Sub
Private Sub animazione() Handles timer1.Tick
Me.Height += incremento
dimensione += incremento
If dimensione = 0 Then
timer1.Stop()
aperto = False
Button1.Enabled = True
ElseIf dimensione = 100 Then
timer1.Stop()
aperto = True
Button1.Enabled = True
End If
End Sub
In pratica con un Button si espande/riduce con una "animazione" la parte inferiore del Form del valore impostato nell' 'ElseIf', la velocità dell' animazione è data dall' intervallo del Timer e dal valore di 'incremento', occhio che quest' ultimo deve essere sottomultiplo del valore dell' 'ElseIf'.
Facendo così devi prevedere ad abilitare/disabilitare i controlli "nascosti, impedire il resize e che la parte che si espande non finisca fuori dallo schermo con il pericolo di non vedere la "nuova" parte del Form....