https://foro.gambas-es.org/viewtopic.php?f=5&t=5347&p=31624#p31624
-----------------------------------
shordi
Domingo, 10 Abril 2016, 12:32

Re: Eventos De Controles Generador Por Código
-----------------------------------
He estado mirando tu proyecto y veo dos problemas distintos:

UNO:
El problema con el uso de Action_Activate (que no puede estar dentro de una clase, sino de un formulario) no es otro que el que hay controles compuestos, como buttonbox, que, a pesar de tener la propiedad en el IDE, no la tienen en funcionamiento. 

¿Por qué? Porque todos los controles de usuario heredan de usercontrol, que incorpora la propiedad Action. Por otra parte, hay controles compuestos que contienen varios controles a su vez, incluyendo un formulario muchas veces como por ejemplo buttonbox, que tiene un textbox y un botón entre otras cosas... Es ese formulario el que observa el Action_Activate del botón que contiene... y no lo propaga a su propio contenedor (tu formulario). 
Así, el evento Action, que aparece en el ide, no funciona, por cuanto el programador del control buttonbox no lo tuvo en cuenta. Siempre puedes pillar el código del buttonbox y activarle ese evento, no es difícil (aunque tal vez sea demasiada alforja para tan poco viaje, como se dice por aquí).

DOS
Creo que es erróneo ese enfoque en la clase tagbox:

Lo que tú quieres es añadir controles en tiempo de ejecución basados en los campos de una tabla ¿correcto? 

La jerarquía que quieres crear, pues, es 

    Formulario->Panelprincipal->[panel de campo->etiqueta->control del campo] ¿ok? (lo que va entre corchetes se repite por cada campo)

Para ello has creado una clase que crea esos controles pero esa clase no tiene lugar en esa jerarquía de controles. Es más, esa clase no es un control, por cuanto no hereda de ningún sitio... y no tiene sentido, por cuanto no tiene entidad propia, sólo "fabrica" controles pero no [i][b]es[/b][/i] nada en sí misma (no tiene propiedades ni métodos).

Lo que tú necesitas es una función (tal vez en un módulo) que te cree esos controles en el formulario. Sin clases intermedias ningunas.
Sería una función que, basándose en la definición de la tabla, genere los controles adecuados en el formulario que la llame. 
Por otra parte, las acciones estándar de un formulario así creadas son conocidas: Grabar, Crear, Borrar, y Salir. No necesitas, pues, crear los botones en tiempo de ejecución, sabes perfectamente cuales son y qué deben hacer.

En el [url=https://foro.gambas-es.org/viewtopic.php?f=5&t=1515]Programa Siesta que subí aquí hace tiempo tienes una formulario que hace eso exactamente. No está demasiado trabajado, quiero decir que, por ejemplo,  no busca si el campo es clave foránea de otra tabla para implementar la lista de valores y demás, dejando aparte que no me curré demasiado la estética  :oops:  :oops: , pero no cuesta prácticamente nada añadirle esas funcionalidades. 

Aunque no te guste o no te sirva, puede darte una idea de cómo veo yo el problema.

Saludos


