2014-02-26 102 views
2

我希望有一個面板中創建5個的PictureBox控件動態創建控制如何在面板控制

Dim a As PictureBox = New PictureBox 
Dim loc As Point = New Point(0, 0) 

    For n As Integer = 0 To 4 
     a.Location = loc 
     a.Size = New Size(100, 100) 
     a.BorderStyle = BorderStyle.Fixed3D 
     a.BackColor = Color.Aqua 
     Panel1.Controls.Add(a) 
     n = n + 1 
     loc = a.Location + New Point(50, 50) 
    Next 

每次我跑沒有在最後位置的面板只有一個PictureBox控件從循環得到。如何在不使用FlowLayoutPanel的情況下在此面板中顯示我的5個圖片框

還有另一個關於循環的問題,我沒有使用任何「步驟」,但每次增加n + = 2。爲什麼是這增加了甚至我宣佈n = n + 1?

回答

2

您似乎將五個引用添加到面板的相同圖片框。我建議你將:

Dim a As PictureBox = New PictureBox 

作爲執行的第一條語句在For循環內。

+0

哦,我的上帝!你是對的!我不知道爲什麼經過一天的工作,我無法理解這麼簡單的事情! 反正謝謝你 – EmPlusPlus

+0

沒問題 - 我們都去過了...... –

2

您可以簡化代碼:

Dim PicBoxes(4) As PictureBox 

    For Index As Integer = 0 To PicBoxes.Length - 1 

     PicBoxes(Index) = 
      New PictureBox With 
       { 
        .Location = New Point(50 * Index, 50 * Index), 
        .Size = New Size(100, 100), 
        .BorderStyle = BorderStyle.Fixed3D, 
        .BackColor = Color.Aqua 
       } 

    Next Index 

    Panel1.Controls.AddRange(PicBoxes)