Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 图片框随计时器移动,但它会落后吗?_C# - Fatal编程技术网

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

C# 图片框随计时器移动,但它会落后吗?,c#,C#,我不知道该怎么解释。我已经设置了代码,所以当计时器滴答作响时,它会检查图片框是否在某个位置。如果不是,那么它应该再靠近一点。它在移动中起作用,但每次移动时,它都会在其后面生成一个白色区域,并不断增长。我将滴答声设置为750,因此每次滴答声时,图片都会移动得比它应该移动的更远,并且每次都比上一次移动得更远。这是密码 private void ZombieTimer1_Tick(object sender, EventArgs e) { ZombieTimer

我不知道该怎么解释。我已经设置了代码,所以当计时器滴答作响时,它会检查图片框是否在某个位置。如果不是,那么它应该再靠近一点。它在移动中起作用,但每次移动时,它都会在其后面生成一个白色区域,并不断增长。我将滴答声设置为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();
        }                        
    }
private void ZombieTimer1\u勾选(对象发送方,事件参数e)
{
ZombieTimer1.Tick+=新系统.EventHandler(ZombieTimer1\u Tick);
enemyNPC1.Show();
ZombieTimer1.Start();
如果(enemyNPC1.Location.X<280)
{
enemyNPC1.Left=enemyNPC1.Left+1;
ZombieTimer1.Stop();
ZombieTimer1.Start();
}                        
}

将事件处理程序的声明移动到窗口的构造函数中


此时,每次事件触发时,您都会得到另一个事件处理程序,这会导致事件第二次触发两次,下次触发四次,以此类推。

您每次都会添加一个新的勾号处理程序。