Я чрезвычайно новичок в C#, и у меня есть простой вопрос: Я должен нарисовать белую частицу (прямоугольник) на черном фоне и переместить ее горизонтально с одного из экрана на другой. я это сделал, но проблема в том, что мигает слишком много (т.е. не является гладким, даже когда скорость высока, я могу легко увидеть черный фон между каждым движением и другим)C# нарисовать движущуюся частицу
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'? – Blorgbeard
нет, как это сделать? – CSawy
В окне дизайна вашей формы перейдите в окно свойств (Вид -> Окно свойств) и найдите строку с надписью «DoubleBuffered», измените значение на «True» – Blorgbeard