Quindi in sostanza dovrei creare un UserControl di nome "PALLA"
inserirgli un timer interno del controllo, fare l'ovverride del metodo OnPaint così ad ogni richiamo di ridisegno (ad esempio il resize della Form) la palla verrà ridisegnata

Allora ho provato a creare un UserControl con un Timer "Tmr_Palla:
codice:
Private punto As Point
    Private grandezza As Size

    Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
        disegnaPalla(grandezza, Color.Red)
    End Sub
    Private Function disegnaPalla(ByVal dimensione As Size, ByVal colore As Color)
        Dim posizione As Point
        posizione.X = 0
        posizione.Y = 0
        Dim rett As New RectangleF(posizione.X, posizione.Y, dimensione.Width, dimensione.Height)
        MyBase.CreateGraphics.Clear(Palla.DefaultBackColor)
        MyBase.CreateGraphics.DrawEllipse(New Pen(New SolidBrush(Color.Red)), rett)
        MyBase.CreateGraphics.FillEllipse(New SolidBrush(colore), rett)
    End Function
    Private Sub Palla_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        punto.X = 0
        punto.Y = 0
        grandezza.Width = 20
        grandezza.Height = 20
    End Sub

    Private Sub tmr_Palla_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmr_Palla.Tick
        punto.X += 1
        punto.Y += 1
        MyBase.Location = punto
    End Sub
Succede pero' che la palla compare un alto a sinistra della form e cominica a muoversi quando sono ancora in fase di Design-Time....Allora vorrei impostare una proprieta' di Design (quelle nel riquadro delle Proprietà di Visual Studio e settare una varibile start di tipo boolean....Ho provato con
codice:
   Public Property Start()
        Get
            Return tmr_Palla.Enabled
        End Get
        Set(ByVal Value As Boolean)
            tmr_Palla.Enabled = Value
        End Set
    End Property
ma non funge

Inoltre nella msdn cè scritto di mettere nella funzione overridata
MyBase.OnPaint(pe)