No hay problema, actualmente estoy tratando de esconder ventanas de aplicaciones externas en VBNET (en VB6 era facil) y no encuentro un pomo asi que se lo que se siente! :)
Lo que primero hacemos es definir el objeto que queremos crear asignandole un nombre, en mi caso bloque(), la variable que va a contener la ruta hacia la foto y la que va a contener el numero de fotos.
Dim bloque() As PictureBox
Dim rm As String, totalfotos as integer
Aca abris tu recordset. Yo uso ADODB nada de esos objetos del net que no hacen otra cosa que hacerte controldependiente.
Una vez que tenes el recordset abierto asigna el recordcount a la variable totalfotos (totalfotos=mirs.recordcount)
Ahora loopeamos la base.
Do
i = i + 1
'Creamos una instancia nueva del picturebox
ReDim Preserve bloque(i)
bloque(i) = New PictureBox
'Recuperamos el path hacia la foto qu equeremos cargar (aca pone el campo de tu base de datos, yo puse el que uso yo)
rm = dbruta & "\fotos\" & MiRs.Fields.Item("nombrefoto").Value
'Cargamos la imagen en el picturebox nuevo que acabamos de crear
bloque(i).Image = New Bitmap(rm)
'Ubicamos el picturebox nuevo en el form
Me.Controls.Add(bloque(i))
'Pasamos al proximo registro
MasterRs.movenext
'loopeamos hasta que I sea = al numero de fotos de la base
Loop Until i=totalfotos
Despues podes poner adentro bloque(i).top y .left para ir acomodandolos dentro del form, pero con eso tenes ya lo basico como para ir trabajando.
Igualmente te dejo un link a un ejemplo de creacion de arrays de objetos que subi a plante source code, miralo, te va a ayudar.
http://www.planet-source-code.com/vb...3507&lngWId=10
Abrazo