所以我一直致力于一个叫做经济的小游戏项目,我遇到了一个小问题。我想要的是在有人雇用新员工时在屏幕上画一个小棍子,我这样做是通过创建一个新的图片框,然后将棒图像分配给它。但是因为我需要一遍又一遍地做这件事(这样他们可以拥有无限的员工)我每次都创建一个新对象。
为了移除棍子男人,当有人解雇他们时,我在旧的棍子上添加了一个新的图片框,只是白色,所以它看起来好像消失了。但由于某种原因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);
}
}
答案 0 :(得分:1)
BringToFront仅在控件已在父级中时才有效,因此请移动该行:
Controls.Add(WWPB);
WWPB.BringToFront();