Problema con eventos de controles creados en ejecución

P.M.
02 de Agosto del 2005
Estoy iniciandome con VB.NET y me ha surgido un problemilla q, debido a mi inexperiencia, no se como resolver.

El asunto es q en un formulario creo controles en ejecución (no en diseño). Tengo una zona donde se crean diapositivas a partir de imagenes contenidas en un directorio.

Habrá, por tanto, tantas diapositivas como imagenes (0-100 diapositivas).

Quiero q al hacer doble click sobre una imagen se abra en un formulario a parte. El problema es q como no existen en diseño no puedo hacer el codigo para el evento.

Las diapositivas, segun se van creando (picturebox), las voy metiendo en un array de pictureboxes. También he probado con colecciones.

¿Alguien me puede echar un cable?

Saludos y gracias por adelantado :-)

jm
02 de Agosto del 2005
El problema aqui no es como guardar los controles, puedes guardarlos en un array o como mejor te vaya.

lo que debes hacer es asignar manualmente la funcion que recojera el evento cada vez que creas un control nuevo.

seria una cosa asi:
Clase.Evento += new ClaseEventHandler(funcion);

donde ClaseEventHandler es un delegate declarado previamente, Evento es el evento en si y funcion es la funcion que recogera el evento que debe tener los mismos parametros que el delegate.

aqui esta mucho mas claro:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconeventsmini-sample.asp

y tambien puedes crear cualquier evento en el desginer y mirar que codigo ha creado el visual studio para controlarlo (puedes poner un picturebox, hacer el codigo del evento doble click y ver exactamente que codigo se ha generado), creo que asi veras muy claro lo que tienes q hacer.

espero q sirva de ayuda

P.M.
02 de Agosto del 2005
Pues muchas gracias jm. Me ha servido de mucha ayuda.

Voy a explicar por encima cómo lo he solucionado por si a alguien le es de utilidad.

Me he creado un procedimiento llamado AsignarEventos al q se le pasa el control q generará el mismo:

Private Sub AsignaEventos(ByVal control As Control)
AddHandler control.Click, AddressOf Me.Control_Click

End Sub

Posteriormente he puesto el código del evento y fin:

Private Sub Control_Click(ByVal sender As Object, ByVal e As System.EventArgs)
...
End Sub

Saludos