0

それで、私はエコノミーという小さなゲーム プロジェクトに取り組んでいましたが、ちょっとした問題に遭遇しました。私が欲しいのは、誰かが新しい従業員を雇ったときに画面に棒人間を描くことです。これを行うには、新しい画像ボックスを作成し、棒人間の画像をそれに割り当てます。ただし、これを何度も行う必要があったため (無制限の従業員を持つことができるようにするため)、毎回新しいオブジェクトを作成しました。

棒人間を削除するために、誰かが彼らを解雇したときに、古い棒人間の上に新しい画像ボックスを追加しました。白いだけなので、棒人間が消えたかのように見えます。ただし、何らかの理由で 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);
    }
}
4

1 に答える 1

1

BringToFront は、コントロールが既に親にある場合にのみ機能するため、その行を移動します。

Controls.Add(WWPB);
WWPB.BringToFront();
于 2015-03-13T21:05:00.087 に答える