2

我在 Compact framework 2.0 C# 中有一个项目我在 Form 中使用了很多图片框,并且有一个计时器可以每秒更改图片框的位置,但是移动速度非常慢我怎样才能让它更快?

定时器间隔为 100

private void timer1_Tick(object sender, EventArgs e)
{
  picust.Location = new Point(picust.Location.X, picust.Location.Y + 10);
  picx.Location = new Point(picx.Location.X, picx.Location.Y + 10);
  picy.Location = new Point(picy.Location.X, picx.Location.Y + 10);
}
4

1 回答 1

3

由于您使用的是 NET Compact Framework 2.0,因此您可以使用 2.0 版开始支持的SuspendLayoutResumeLayout方法来改进您的代码。将这些方法放在您的代码周围,如示例中所示:

//assuming that this code is within the parent Form

private void timer1_Tick(object sender, EventArgs e)
{
  this.SuspendLayout();
  picust.Location = new Point(picust.Location.X, picust.Location.Y + 10);
  picx.Location = new Point(picx.Location.X, picx.Location.Y + 10);
  picy.Location = new Point(picy.Location.X, picx.Location.Y + 10);
  this.ResumeLayout();
}

这将防止表单的三个重绘,而是只执行一个。

于 2013-03-21T13:21:07.270 回答