Вам нужно будет отслеживать ваше текущее местоположение в переменной уровня формы. Если вы сделаете это, ваше событие Form1_Paint может изменять местоположение пикселя X каждый раз, когда оно рисует.
Просто добавьте таймер в вашу форму и установите его интервал в 200 мс. Каждые 200 мс добавляйте 2 к своему текущему пикселю X и лишайте законной силы свой элемент управления (поэтому он перерисовывается).
Редактировать: Добавьте это к вашей форме:
int xOffset = 0;
Затем в вашем таймере: отметка:
private void timer1_Tick(object sender, EventArgs e)
{
if (xOffset < 500)
xOffset += 2;
else
timer1.Enabled = false; // This will make it only move 500 pixels before stopping.... Change as desired.
this.Invalidate(); // Forces repaint
}
Измените событие рисования на:
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Point p1 = new Point(5 + xOffset,0);
Point p2 = new Point(10 + xOffset, 5);
Point p3 = new Point(5 + xOffset, 10);
Point p4 = new Point(0 + xOffset, 5);
Point[] ps = { p1, p2, p3, p4, p1 };
g.DrawLines(Pens.Black, ps);
}