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