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....