如何使用 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();
所以我一直在做一个叫做经济的小游戏项目,我 运行 遇到了一个小问题。我想要的是当有人雇用新员工时在屏幕上画一个火柴人,我通过创建一个新的图片框并将火柴人图像分配给它来做到这一点。然而,因为我需要一遍又一遍地这样做(这样他们就可以拥有无限的员工)我让它每次都创建一个新对象。
为了移除火柴人,当有人解雇他们时,我在旧的火柴人上添加了一个新的图片框,它只是白色的,所以看起来它们就像消失了一样。但是由于某种原因 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();