Déplacer les images en C#

Je veux charger une petite image dans un WinForms pictureBox de contrôle, puis l'animer déplacent de l'autre côté de la forme.

J'ai chargé l'image et utilisé un timer pour déplacer l'image, mais quand je le lance l'application montre la position finale de la pictureBox et de son image.

Comment je peux afficher l'image en douceur la transition vers l'emplacement final?

Voici mon code pour l'instant:

public partial class Form1 : Form
{
    private int counter = 0;

    void timer_Tick(object sender, EventArgs e)
    {
        counter++;
        if (counter == 1)
        {
            pictureBox1.Show();
            timer1.Stop();
            counter = 0;
        }
    }

    public Form1()
    {
        InitializeComponent();

        timer1.Interval = 10;
        timer1.Tick += new EventHandler(timer_Tick);
    }

    private void button1_Click(object sender, EventArgs e)
    {

        while(i<=100){

             int x = pictureBox1.Location.X;
             int y = pictureBox1.Location.Y;

             pictureBox1.Location = new Point(x+25, y);
             timer1.Start();
        }
     }
}
while(i<=100){ Où est i défini? La boucle n'est jamais de terminaison basé sur le code présenté.

OriginalL'auteur ha.M.ed | 2011-01-28