2017-10-31 11 views
0

49個のPictureBoxを作成して、フォームに配置する必要があります。 私はループを使用してピクチャボックスの配列を作成するにはどうすればよいですか?

Public Class Form1 
    Dim grid() as PictureBox 
    Public Sub Form_Load() Handles Me.Load 
     For i = 0 to 48 
     grid(i) = New PictureBox 
     grid(i).Visible = True 
     Me.Controls.Add(grid(i)) 
     Next 
    End Sub 

デバッグコンソールのようなもので考えていたことは、ドンあなたなら、私にグリッド(I)=何も

+0

ものは、それはつもりはないですすべて私が知っている同じ場所 – Plutonix

+0

であることを行っているが、私はそれらを作成するために管理する場合は、それらを広げることflowlayoutpanelではなく、配列 – RicRev

+0

簡単だろう範囲外の例外を発生させる? – Plutonix

答えて

2
Dim grid(0 to 48) As PictureBox 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
     For i = 0 To 48 
      grid(i) = New PictureBox 
      Me.Controls.Add(grid(i)) 
     Next 
    End Sub 

または

Dim grid(48) As PictureBox 
     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
      For i = 0 To 48 
       grid(i) = New PictureBox 
       Me.Controls.Add(grid(i)) 
      Next 
     End Sub 

または

Dim grid() As PictureBox 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
     redim grid(48) 
     For i = 0 To 48 
      grid(i) = New PictureBox 
      Me.Controls.Add(grid(i)) 
     Next 
    End Sub 

を伝えます李のようにあなたの配列をReDimしてリストを使用する必要があります。

Dim grid As List(of PictureBox) 
     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
      grid=new list(of picturebox) 
      For i = 0 To 48 
       grid.add(New PictureBox) 
       Me.Controls.Add(grid.item(grid.count-1)) 
      Next 
     End Sub 
+3

グリッドではありません。それは何もありません。それは初期化されていないgrid()です –

+0

これは私がやっていることとどう違うのですか?配列のサイズを49に制限するだけです。 – RicRev

+0

あなたは助けを求めています。私はあなたのコードがなぜ機能していないのかについてのコメントであなたに答えを与えました。私は配列を制限していません。私はそれを初期化しています –

関連する問題