Я новичок в С#, и у меня простой вопрос: я должен нарисовать белую частицу (прямоугольник) на черном фоне и переместить ее по горизонтали с одного экрана на другой. Я сделал это, но проблема в том, что он слишком часто мигает (т.е. он не плавный даже на высокой скорости, я легко вижу черный фон между каждым ходом и другим)
t.Interval = 1000 / speed;
t.Tick += new EventHandler(t_Tick);
t.Start();
....
void t_Tick(object sender, EventArgs e)
{
//g.Clear(Color.Black);
g.DrawRectangle(new Pen(Brushes.Black, 20), r); //draw a black rectangle in the old position...20 is the thickness of the pen
r.X += move_x;
g.DrawRectangle(new Pen(Brushes.White, 20), r); //draw a white rectangle in the new position...20 is the thickness of the pen
if (r.X >= 1700) ///this means it reached the end of the screen
t.Stop();
}
Я использовал g.Clear для очистки графики, но это тоже не сработало, поэтому я нарисовал черный прямоугольник в старом положении, прежде чем переместить его в новое положение.
Любая идея, как убрать это мерцание или даже сделать это по-другому?
DoubleBuffered
вашей формы значениеtrue
? - person Blorgbeard   schedule 10.05.2013True
- person Blorgbeard   schedule 10.05.2013