图片框随计时器移动,但它落后了吗?

时间:2018-11-13 13:37:15

标签: c#

我不确定该如何解释。我已经设置了代码,因此当计时器计时时,它会检查图片框是否在某个位置。如果不是,那么它应该稍微靠近一点。它在移动中起作用,但是每次移动时,它都会在其后面生成白色场,并且会不断增长。我将刻度线设置为750,因此,每次刻度线移动时,图片移动的幅度都比其应有的远,并且每次移动的距离均大于前一次。这是代码。

        private void ZombieTimer1_Tick(object sender, EventArgs e)
    {
        ZombieTimer1.Tick += new System.EventHandler(ZombieTimer1_Tick);
        enemyNPC1.Show();
        ZombieTimer1.Start();
        if (enemyNPC1.Location.X < 280)
        {
            enemyNPC1.Left = enemyNPC1.Left + 1;
            ZombieTimer1.Stop();
            ZombieTimer1.Start();
        }                        
    }

1 个答案:

答案 0 :(得分:1)

将事件处理程序的声明移至窗口的构造函数。

此刻,每次事件触发时,您都会获得另一个事件处理程序,这将导致事件第二次触发两次,下次触发四次,等等。