我有一个 flowLayoutPanel,里面有图片框。我在运行时添加多个图片框,如下所示:
while (flowLayoutPanel1.Controls.Count < 10)
{
flowLayoutPanel1.Controls.Add(new PictureBox());
}
我有一个函数可以使每个控件的“图像”属性等于 LinkedList 中图像的“图像”值。这个想法是当我想将新图像添加到图像队列时调用该方法。当我将新图像传递给函数时,FlowLayoutPanel 中的所有图片框都显示链接列表中的最后一个图像,而不是 LinkedList 中的适当图像。我已经确认LinkedList实际上在每个位置都包含不同的图像。就像 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 控件分配值的方式是否错误?为什么所有的图片框都引用同一个图像?