C# 将动态Picturebox创建为子窗体

C# 将动态Picturebox创建为子窗体,c#,forms,show,picturebox,mdichild,C#,Forms,Show,Picturebox,Mdichild,希望你们中的一些人能帮助我。 我有一个PictureBox数组要在显示之后显示到MdiChildForm中。 但是当我在“CreatePictureBox”方法中运行程序时,我只有在显示表单后才执行该方法,我得到一个NullReferenceException。为什么? 这是表格的代码 private void packOpeningToolStripMenuItem_Click(object sender, EventArgs e) { ProvaPackOpe

希望你们中的一些人能帮助我。 我有一个PictureBox数组要在显示之后显示到MdiChildForm中。 但是当我在“CreatePictureBox”方法中运行程序时,我只有在显示表单后才执行该方法,我得到一个NullReferenceException。为什么?

这是表格的代码

    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++;
        }
    }
public void CreatePictureBox()
{
int16i=0;
PictureBox[]PicBoxArray=新PictureBox[10];
而(i

我曾经考虑过用线程管理整个程序(这将是一个游戏),但是如果有更简单的解决方案,它会更好。

当你创建一个对象数组时,你只为对象列表分配空间。您不是在创建单个对象本身。将此行添加为
while
循环中的第一行:

PicBoxArray[i] = new PictureBox();