У меня есть FlowLayoutPanel с картинками в нем.Я добавляю несколько PictureBox во время выполнения, как это:
while (flowLayoutPanel1.Controls.Count < 10)
{
flowLayoutPanel1.Controls.Add(new PictureBox());
}
У меня есть функция, которая делает свойство «Изображение» каждого элемента управления равным значениям «Изображение» изображений в LinkedList.Идея состоит в том, чтобы вызвать метод, когда я хочу добавить новое изображение в очередь изображений.Когда я передаю новое изображение в функцию, все графические блоки в FlowLayoutPanel отображают последнее изображение в связанном списке, а не соответствующее изображение в LinkedList.Я ЕСТЬ подтвердил, что LinkedList на самом деле содержит разные изображения в каждой позиции.Как будто все PictureBox в FlowLayoutPanel ссылаются на последний добавленный.
internal void AddImage(ThermalImage thermalImage)
{
thermalImages.AddFirst(thermalImage);
while (thermalImages.Count > 10)
{
thermalImages.RemoveLast();
}
for (int i = 0; i < thermalImages.Count; i++)
{
PictureBox p = (PictureBox)flowLayoutPanel1.Controls[i];
p.Image = thermalImages.ElementAt(i).Image;
}
}
Моя инициализация для заполнения FlowLayoutPanel неправильная?Неправильно ли мне присвоить значения элементам управления PictureBox?Почему все PictureBox ссылаются на одно и то же изображение?