在winform上流畅地移动图片

时间:2017-07-10 10:41:55

标签: c# timer

我已经为winform添加了一个计时器控件(只需使用VS2017进行拖放)。 此计时器控件在表单上从左向右移动图片。启用时。

private void timer1_Tick(object sender, EventArgs e)
{
    int x = PictureBox1.Location.X + 1;

    if (x < 400) 
        PixtureBox1.Location = new Point(x, 100);
}

问题在于此移动操作不流畅,动作不稳定。我必须坚持winform,并想知道这个不稳定的运动可以做些什么?

如果试图最小化间隔或增加位移但它仍然不稳定。

1 个答案:

答案 0 :(得分:0)

您必须尝试使用​​OnPaint()方法制作动画。这是MSDN Documentation的链接。 您可以设置一个计时器,用于触发您想要达到的目标帧速率,并调用InvalidateRect()Invalidate(true)重绘整个窗口。

按帧速率表示必须重绘动画控件的次数,如果想要帧速率为30,则计算定时器间隔1000/30为1000 ms = 1秒。

因此timer.Interval = 1000/30 timer.Tick 事件调用Invalidate()来触发 OnPaint ()事件。