A ver si me explico:
Tengo un formulario, con una función que devuelve un boton listo para
ser usado.
Cuando llamo a esta función, le doy los parametros necesarios que
necesita: location, size,...
Lo que deseo es poder pasarle también el nombre del procedimiento que
manejará el evento click.
En resumen, la funcion que deseo sería:
Private Function CrearBoton (ByVal posicion As Point, _
ByVal tamaño As Size, _
...
ByVal NombreProcedimiento As ? )
Dim Boton as New Button()
Boton.Location = posicion
Boton.Size = tamaño
...
AddHandler Boton.Click, AddressOf NombreProcedimiento
Return
End Function
He provado con Delegados:
Definicion:
Delegate Sub Boton_Click(ByVal sender As Object, ByVal e As
System.EventArgs)
En el procedimiento de llamada:
Dim ProcedimientoEventoClick As Boton_Click = AddressOf
BotonTipoA_Click
y en la firma de la funcion el parametro lo pongo de tipo Delegate:
Private Function CrearBoton (ByVal posicion As Point, _
ByVal tamaño As Size, _
...
ByVal NombreProcedimiento As [DELEGATE] )
, pero falla en tiempo de ejecucion dando el siguiente error:
InvalidCastException
No se puede convertir un objeto de tipo 'Boton_Click' al tipo
'System.EventHandler'.
Bueno, alguien me puede ayudar
Leer las respuestas