Не все элементы формы(контролы) выводятся в цикле. Как исправить?
У меня есть метод вывода всех контролов в списке:
private void Update(List<PictureBox> pbs)
{
foreach(var pb in pbs)
{
pb.Top = pictureBox2.Top - sm;
sm = sm + 20;
panel2.Controls.Add(pb);
}
}
В списке все элементы присудствуют:

Но выводятся только два контрола. Как исправить данную проблему?
Ответы (1 шт):
Автор решения: Эрнст Краузе
→ Ссылка
Проблема была в том, что метод Controls.Add() не хотел добавлять элементы из списка, поэтому пришлось создавать элемент и сразу добавлять его через метод Controls.Add().
Метод в самой форме:
private void Draw()
{
for (int i = 0; i < unitnubmer; i++)
{
var pb = panell.Draw();
pb.MouseDown += pictureBox2_MouseDown;
pb.Top = pictureBox2.Top - sm;
sm = sm + 13;
panel2.Controls.Add(pb);
pictureBoxes.Add(pb);
}
}
Метод в объекте panell:
public PictureBox Draw()
{
string fileName = Path.Combine(Environment.CurrentDirectory, "cc.png");
//Если была выбрана и загружена картинка, то...
Image img = referencePB.Image;
//...создадим новый PictureBox, загрузим в него картинку и укажем
//дополнительные параметры для него.
picbox = new PictureBox();
picbox.Image = img;
picbox.Left = referencePB.Left;
picbox.Width = referencePB.Width;
picbox.Height = referencePB.Height;
picbox.Top = referencePB.Top;
picbox.SizeMode = PictureBoxSizeMode.Zoom;
//Добавим созданный PictureBox в списочек
return picbox;
}
Буду рад, если найдётся человек, который найдёт способ выводить элементы из списка методом Controls.Add()
