Hai due modi per scrivere il programma.
1) Tu hai inserito manualmente i picturebox con nomi del tipo PictureBox1, PictureBox2 ....
Per cercare PictureBox1 dalla collection dei controlli devi scrivere una funzione che itera sui controlli di tipo PictureBox e cerca il nome:
Function CercaPicBox(ByVal strName As String) As PictureBox
Dim myCtrl As Control
For Each myCtrl In Me.Controls
If (myCtrl.GetType() Is GetType(PictureBox)) Then
Dim picName As PictureBox = CType(myCtrl, PictureBox)
If picName.Name = strName Then
Return picName
End If
End If
Next
End Function
Con questa funzione l'assegnamento delle immagini avviene con un ciclo del tipo:
'Assegna le immagini a 4 controlli PictureBox inseriti manualmente nella form
'Con nomi PictureBox1, PictureBox2, PictureBox3, PictureBox4
For i = 1 To 4
Dim pic As New PictureBox
pic = CercaPicBox("PictureBox" & CStr(i).Trim)
pic.Load(pathImages + "EXAMPLE" & i & ".png")
Next
2) Oppure non inserisci nulla nella form e generi i controlli picturebox runtime, dal momento che la parola new non funziona per matrici di controlli, definisci prima una picturebox generica di nome pic con la parola chiave new e poi la assegni al vettore dei controlli, così potrai lavorare successivamente sugli elementi del vettore, ecco il listato:
Private Sub frmImgControl_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Predispongo un vettore per contenere i 4 controlli immagine
Dim picControls(0 To 3) As PictureBox
Dim i As Integer
Dim xPos As Integer = 20
Dim pathImages As String = My.Computer.FileSystem. SpecialDirectories .MyPictures + "\"
For i = LBound(picControls) To UBound(picControls)
Dim pic As New PictureBox
pic.Left = xPos
xPos = xPos + 100
pic.Top = 100
pic.Width = 80
pic.Height = 80
pic.SizeMode = PictureBoxSizeMode.Zoom
Controls.Add(pic)
picControls(i) = pic
Next i
'caricamento immagini
For i = LBound(picControls) To UBound(picControls)
picControls(i).Load(pathImages + "EXAMPLE" & i & ".png")
Next
End Sub