如何使用 BringToFront();适当地?

How to use BringToFront(); properly?

所以我一直在做一个叫做经济的小游戏项目,我 运行 遇到了一个小问题。我想要的是当有人雇用新员工时在屏幕上画一个火柴人,我通过创建一个新的图片框并将火柴人图像分配给它来做到这一点。然而,因为我需要一遍又一遍地这样做(这样他们就可以拥有无​​限的员工)我让它每次都创建一个新对象。

为了移除火柴人,当有人解雇他们时,我在旧的火柴人上添加了一个新的图片框,它只是白色的,所以看起来它们就像消失了一样。但是由于某种原因 BringToFront();似乎不适用于它,所以我无法将白色图片绘制在火柴人身上。

如果有人能告诉我为什么它不起作用,或者可以参考原始火柴人图片框来更改其图像,那就太棒了。

public void Hire_Worker_Click(object sender, EventArgs e)
{
    workers++;
    money -= 10000;

    PictureBox WPB = new PictureBox();
    //Set location and size of new picturebox
    WPB.Image = Economy.Properties.Resources.Worker;
    WPB.Width = 68;
    WPB.Height = 118;
    WPB.Location = new Point(workerx,400);
    workerx += 68;
    Controls.Add(WPB);
}

public void Fire_Worker_Click(object sender, EventArgs e)
{
    if (workers > 1)
    {
        clickfire++;
        workers--;
        money -= 100;

        if (clickfire == 1)
        {
            workerx -= 68;
        }

        PictureBox WWPB = new PictureBox();
        //Set location and size of picturebox
        WWPB.BringToFront();
        WWPB.Image = Economy.Properties.Resources.whiteworker;
        WWPB.Width = 68;
        WWPB.Height = 118;
        WWPB.Location = new Point(workerx, 375);
        workerx -= 68;
        Controls.Add(WWPB);
    }
}

BringToFront 仅在控件已在父级中时才起作用,因此请移动该行:

Controls.Add(WWPB);
WWPB.BringToFront();