2013-08-05 45 views
0

希望你们中的一些人能帮助我。 我有一个PictureBox数组在显示后立即显示到MdiChildForm中。 但是,当我运行程序,在“CreatePictureBox”方法中,我只在显示窗体后执行,我得到一个NullReferenceException。为什么?动态图片库创建成刚才显示MdiChildForm

这里是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++; 
     } 
    } 

我想过用线程管理整个程序(这将是一个游戏)的数组创建的代码,但如果有一些更简单的解决方案,它会更好。

回答

0

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

PicBoxArray[i] = new PictureBox();