Movimento do painel C # com colisão

Eu sou novo em C # e Winforms e tento fazer um painel em movimento. Ele deve se mover para a direita até o final da minha janela e depois para a esquerda. Deve saltar de um lado para o outro. Mas a única coisa que aconteceu depois de horas de tentativas é que ela se move para a esquerda e para.

Usando as ferramentas deste formulário:

Timer = tmrMoveBox (interval: 50)
Panel = pnlBox
Label = lblXY (for showing the X and Y coordinates in the form)

Aqui está minha primeira melhor tentativa:

private void tmrMoveBox(object sender, EventArgs e)
{
    if (pnlBox.Location.X <= 316)
    {
        for (int i = 0; i <= 316; i++)
        {
            pnlBox.Location = new Point(
                pnlBox.Location.X + 2, pnlBox.Location.Y);
            string BoxLocationToString = pnlBox.Location.ToString();
            lblXY.Text = BoxLocationToString;
        }
    }

    else if (pnlBox.Location.X >= 0)
    {
        for (int i = 0; i >= 316; i++)
        {
            pnlBox.Location = new Point(
                pnlBox.Location.X - 2, pnlBox.Location.Y);
            string BoxLocationToString = pnlBox.Location.ToString();
            lblXY.Text = BoxLocationToString;
        }
    }
}

E a segunda melhor tentativa:

private void tmrMoveBox(object sender, EventArgs e)
{
    int runBox = 1;

    if(runBox == 1)
    {
        while (pnlBox.Location.X <= 316)
        {
            pnlBox.Location = new Point(
                pnlBox.Location.X + 2, pnlBox.Location.Y);
            string BoxLocationString = pnlBox.Location.ToString();
            lblXY.Text = BoxLocationString;
            runBox = 0;
        }
    }
    else
    {
        while(pnlBox.Location.X > 0)
        {
            pnlBox.Location = new Point(
            pnlBox.Location.X - 2, pnlBox.Location.Y);
            string BoxLocationString = pnlBox.Location.ToString();
            lblXY.Text = BoxLocationString;
            runBox = 1;
        }
    }
}

Tentei usar um loop while também, mas o painel simplesmente desapareceu. Não sou especialista e apenas defino esse painel móvel como uma meta para mim. Espero que alguém possa me dar uma dica.

EDITAR:

Form1.Designer.cs

 this.timer1.Interval = 50;
 this.timer1.Tick += new System.EventHandler(this.tmrMoveBox);
 this.timer1.Start();
 this.timer1.Step = 2;

questionAnswers(2)

yourAnswerToTheQuestion