动态图片框创建为刚刚显示的MdiChildForm
本文关键字:显示 MdiChildForm 创建 动态 | 更新日期: 2023-09-27 18:26:27
希望你们中的一些人能帮助我。我有一个PictureBox数组要在显示后显示到MdiChildForm中。但当我运行程序时,在"CreatePictureBox"方法中,我只有在显示表单后才执行该方法,我得到了一个NullReferenceException。为什么?
这是FormShowing 的代码
private void packOpeningToolStripMenuItem_Click(object sender, EventArgs e)
{
ProvaPackOpening ProvaPackOpening = new ProvaPackOpening();
ProvaPackOpening.MdiParent = this;
ProvaPackOpening.Show();
ProvaPackOpening.CreatePictureBox();
}
这就是阵列创建的代码
public void CreatePictureBox()
{
Int16 i = 0;
PictureBox[] PicBoxArray = new PictureBox[10];
while (i < PicBoxArray.Count())
{
PicBoxArray[i].BackgroundImageLayout = ImageLayout.Center;
PicBoxArray[i].Location = new Point(0, 0);
PicBoxArray[i].Size = new Size(128, 185);
PicBoxArray[i].BackColor = Color.Aqua;
PicBoxArray[i].Parent = this.panBox;
PicBoxArray[i].Visible = true;
panBox.Controls.Add(PicBoxArray[i]);
PicBoxArray[i].Show();
i++;
}
}
我曾考虑过用线程管理整个程序(这将是一个游戏),但如果有一些更简单的解决方案,那会更好。
创建对象数组时,只为对象列表分配空间。您并不是在自己创建单个对象。将这一行添加为while
循环中的第一行:
PicBoxArray[i] = new PictureBox();