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 以降でサポートされているSuspendLayoutおよびメソッドを使用してコードを改善できます。ResumeLayout例のように、これらのメソッドをコードの周りに置きます。

//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();
}

これにより、フォームの 3 回の再描画が回避され、代わりに 1 回だけ実行されます。

于 2013-03-21T13:21:07.270 に答える