以windows形式创建一个图片框数组(C#)

时间:2018-03-16 13:21:07

标签: c# arrays winforms picturebox

我正在尝试创建一个数组/列表的图片框对象,这些对象在按钮点击时声明并添加到表单中(意思是我不是用我的数组创建多个对象,但是计划如果我可以将其转换为跑)。没有错误,但图片框本身不会出现在表单上。

private void spawn_Click(object sender, EventArgs e)
{
    var pictureTest[0] = new PictureBox();

    pictureTest[0].Image = Properties.Resources.testimage;
    pictureTest[0].Location = new Point(500, 250);
    pictureTest[0].Name = "spawn1";
    pictureTest[0].Size = new Size(50, 50);
    pictureTest[0].TabIndex = 98;
    pictureTest[0].TabStop = false;

    this.Controls.Add(pictureTest[0]);

}

通过我的研究过程,我主要得到了使用this.Controls.Add的建议,但这似乎不是我的问题。我的数组先前用:

声明
PictureBox[] pictureTest = new pictureTest[100];

1 个答案:

答案 0 :(得分:0)

正如@HansPassant在评论中所说,这段代码无法编译。以下应该广泛地做你想要的:

int _position = 10;

private void spawn_Click(object sender, EventArgs e)
{

    var pictureTest = new PictureBox();

    pictureTest.Image = Properties.Resources.testimage;
    pictureTest.Location = new Point(_position, 250);
    pictureTest.Name = "spawn1";
    pictureTest.Size = new Size(50, 50);
    pictureTest.TabIndex = 98;
    pictureTest.TabStop = false;

    this.Controls.Add(pictureTest);

    _position += 100;
}

首先,没有必要维护一个单独的PictureBox数组,因为它们是表单的一部分。其次,正如@HansPassant所说 - 你将图像直接叠加在一起,所以你无法判断你是否有1或1000。