https://foro.gambas-es.org/viewtopic.php?f=5&t=5347&p=31639#p31639
-----------------------------------
shordi
Lunes, 11 Abril 2016, 12:10

Re: Eventos De Controles Generador Por Código
-----------------------------------
Aquí tienes un ejemplo de un formulario que muestra los campos de una tabla y cuyos eventos puedes controlar desde el formulario principal (en este caso sólo muestra una lista de registros y el detalle al hacer click sobre uno de ellos.
Verás que tienes tres sitios desde donde puedes controlar los eventos de los controles (hablamos siempre del evento Action), 

- en el propio formulario: en el evento click de los botones del formulario "hijo" (si es que quieres darles un comportamiento estándar) 
- en el evento Action_Activate del formulario "hijo"
- en el evento Action_Activate levantado por el "hijo" y observado en el formulario "padre".

El programa incorpora una base de datos sqlite que saqué de no sé dónde y ahí podras comprobar cómo se le asigna a cada control creado la propiedad Action (se establece al nombre del control que, a su vez, se establece al nombre del campo). Unos controles levantan el evento Action_Activate como los botones y los checkboxes y otros no, como los textbox y como te ocurría a tí con el buttonbox.

El truco, como verás esta en extender la clase Detalle con un evento más: Action_Activate, que es levantado (Raise) dentro del evento interno Action_Activate del Formulario. (Puede ser lioso el haber elegido el mismo nombre para el nuevo evento, pero es mucho más claro y nemotécnico su funcionamiento). 
En el formulario padre estableces un observador mediante la cláusula AS  y a partir de ahí puede controlar todos los eventos del formulario en el formulario padre.
Este es el aspecto:
 [img]https://foro.gambas-es.org/files/images/38/captura_de_pantalla_de_2016_04_11_12_54_56.png[/img] 

El código de creación de los controles lo he sacado del programa siesta, simplificándolo un poco y es bastante tosco pero creo que como ejemplo es válido para asumir cómo funciona la técnica. 

Espero que te sirva.

Saludos


