Положить картинку на картинке - PullRequest
0 голосов
/ 20 апреля 2020

У меня проблема с добавлением графических блоков с помощью класса Controls в другой уже существующий графический блок.

при загрузке формы я не вижу никаких изменений, поскольку «закодированные» изображения находятся под основным изображением (Арена)

Вот мой код:

void drawSpikes()
{
    PictureBox[] spikes = new PictureBox[Arena.Height / 25 * 2];
    int position = 0;
    byte wall = 1;
    byte spike_count = 0;

    for (int i = 0; i < Arena.Height / 25 * 2; i++)
    {
        spikes[i] = new PictureBox();
    }
    foreach (var Spike in spikes)
    {
        if (spike_count == 18) wall = 2;

        Spike.Size = new Size(25, 25);
        if (wall == 1)
        {
            Spike.Location = new Point(21, position);
            Spike.BackColor = Color.Yellow;
        }
        if (wall == 2)
        {
            Spike.Location = new Point(position, 250);
            Spike.BackColor = Color.Yellow;
        }

        if (position == 450) position = 0;
        position += 25;
        spike_count += 1;
        Controls.Add(Spike);
    }
}

Как я могу это исправить?

извините за отключение функции (я новичок в переполнении стека).

1 Ответ

0 голосов
/ 20 апреля 2020

Вы можете использовать функцию BringToFront () после добавления графического блока в коллекцию элементов управления:

Controls.Add(Spike);

Spike.BringToFront();
...