0

希望你们中的一些人可以帮助我。我有一个 PictureBox Array 在显示后显示到 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++;
        }
    }

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

4

1 回答 1

0

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

PicBoxArray[i] = new PictureBox();
于 2013-08-05T19:15:42.633 回答