0

我有一个 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 控件分配值的方式是否错误?为什么所有的图片框都引用同一个图像?

4

0 回答 0