Я пытаюсь нарисовать много экземпляров изображения, используя следующий код:
PictureBox[] sprites = new PictureBox[100];
private void Game_Load(object sender, EventArgs e)
{
PictureBox mainSprite = new PictureBox();
Bitmap img = new Bitmap(SpriteTest.Properties.Resources.Image); //Load a png image
mainSprite.Size = new Size(16, 16);
mainSprite.Image = img;
for(var i = 0; i < sprites.Length; i++)
{
sprites[i] = mainSprite;
//Keeping it simple for now with a single row of sprites
sprites[i].Location = new Point(i * 16, 8);
}
Game.ActiveForm.Controls.AddRange(sprites);
}
Когда запускается код, отображается только последнее изображение. Во время отладки кода все, кажется, работает как ожидалось. Я также могу убедиться, что местоположение на самом деле обновляется.
Я также попытался добавить элементы управления по-разному, используя следующий код в цикле for (без удачи);
this.Controls.Add(sprites[i]);
У меня была эта проблема много раз, особенно когда я пытался создать много групповых ящиков похожим образом. За те часы, которые я искал в Интернете, пытаясь найти решение, ничто так и не исправило его.