0

您好,我的 form1 中有 20 个图片框,我已经定位。我想将这 20 个图片框添加到我的图片框数组中。我需要帮助

 private void Form1_Load(object sender, EventArgs e)
    {
       Control[] pBoxes = new PictureBox[20];
                    for (int i = 0; i < 20; i++)
                    {
                        pBoxes[i] = new PictureBox();
                        PBoxes[i] =System.Windows.Find("PictureBox" + i, true);
                    }
    }

我试过这样但它没有用

4

2 回答 2

0

您正在创建新的PictureBox,这肯定不是您想要的。相反,您需要在表单中获取 PictureBox 的现有实例。由于它们已经添加到您的表单中,因此它们可能已经作为成员存在Form1(尤其是如果您使用设计器)。尝试:

var pBoxes = new PictureBox[] {pictureBox1, pictureBox2, pictureBox3, ...};

否则,您还可以执行以下操作来获取所有PictureBox直接级的数组Form1

var pBoxes = this.Controls.OfType<PictureBox>().ToArray();

请注意,如果 PictureBoxes 位于其他容器(例如 Panels)中,您将不得不递归所有容器以获取所有容器。

于 2012-09-20T13:08:28.003 回答
0

您可以使用 Linq 轻松获取所有 Picturebox ..

private void Form1_Load(object sender, EventArgs e)
{
   var pBoxes = this.Controls.OfType<PictureBox>();
}
于 2012-09-20T13:08:36.763 回答