如何使用BringToFront();正常吗?

时间:2015-03-13 20:50:26

标签: c# object picturebox bringtofront

所以我一直致力于一个叫做经济的小游戏项目,我遇到了一个小问题。我想要的是在有人雇用新员工时在屏幕上画一个小棍子,我这样做是通过创建一个新的图片框,然后将棒图像分配给它。但是因为我需要一遍又一遍地做这件事(这样他们可以拥有无​​限的员工)我每次都创建一个新对象。

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

如果有人能告诉我它为什么不起作用,或者引用原始的stickmen pictureboxe来改变他们的形象,那就太棒了。

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

1 个答案:

答案 0 :(得分:1)

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

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