Scusa ma...
codice:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Integer = 0
        For i = 1 To 300
            Panel1.Left = i
            System.Threading.Thread.Sleep(10)
        Next
    End Sub
...il fatto che abbia messo una pausa nel ciclo e che non abbia ottenuto l'effetto sperato di un'animazione è normale, vero?

Si deve usare un timer in questi casi?
Scusa le domande basilari, fino a ieri lavoravo solo per il web e prima di ajax non avevo mai usato neppure il Thread.Sleep