2013-08-05 3 views
0

여러분 중 일부는 저를 도울 수 있기를 바랍니다. MdiChildForm에 표시 할 PictureBox 배열이 하나 있습니다. 그러나 내가 폼을 보여준 후에 만 ​​실행하는 "CreatePictureBox"메서드에서 프로그램을 실행할 때 NullReferenceException이 발생합니다. 왜?Dynamic Picturebox를 만들었 으면 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();