我有一个flowLayoutPanel,其中包含pictureBoxes。我在运行时像这样添加多个PictureBox:
while (flowLayoutPanel1.Controls.Count < 10)
{
flowLayoutPanel1.Controls.Add(new PictureBox());
}
我有一个函数,使每个控件的“ Image”属性等于LinkedList中Images的“ Image”值。我的想法是在要向图像队列中添加新图像时调用该方法。当我将新图像传递给该函数时,FlowLayoutPanel中的所有图片框都会在链接列表中显示最后一张图像,而不是LinkedList中的相应图像。我已确认,LinkedList实际上在每个位置上都包含不同的图像。就像FlowLayoutPanel中的所有PictureBox都引用添加的最后一个一样。
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都引用相同的图像?