none
Copiar y Pegar Herramientas sus propiedades y sus Eventos asociados RRS feed

  • Pregunta

  • Tengo un programa que lo hice en un solo form usando tabControl para cada pantalla.

    Ahora deseo pasar todo a un programa con pantalla de ingreso y pantalla de menu principal y dentro de este menu abrir otros formularios (cada uno de ellos seria el contenido de algún tabPage)

    El programa actual en cada tabPage tiene: herramientas (label, textbox, ...) todos ellos con propiedades y eventos asociados.

    Quisiera copiarlos a otros formularios conservando las propiedades y los eventos asociados, y que estos tambien se copiaran.

    Luego solo me restaria copiar los métodos, que por suerte los tengo agrupados dentro de #region.

    He probado con copiar y pegar y me renombra las herramientas y no me copia los eventos.

    Y deseo conservar los nombres de cada herramienta.


    Hugo González (Macgyber)

    jueves, 31 de agosto de 2017 10:41

Respuestas

  • No tengo una solución fácil para tu problema. Hasta donde yo sé, al copiar y pegar los controles desde la vista de diseño el nombre sí que se conserva (salvo que se encuentre duplicado en el destino donde los pegas). Pero los eventos hay que reconectarlos uno por uno manualmente, lo cual es bastante molesto.

    Pero en cambio sí que tengo una sugerencia para que esas cosas no te pasen en el futuro: Cuando diseñes un formulario con TabControl, no pegues directamente controles dentro de cada Tab. En su lugar, añade al proyecto un UserControl por cada Tab, pon los controles en el UserControl, y luego pon el UserControl dentro del Tab. Esto tiene la ventaja de que los eventos asociados a los controles quedan encapsulados dentro del UserControl, y no te "polucionan" el Form original que contenía el TablControl. Esto te evita tenerlos que agrupar usando region, y también evita que accidentalmente se introduzcan dependencias entre un region y otro. Y si un día decides que no quieres el TabControl sino que quieres cada Tab en un formulario independiente, basta con pegar el UserControl en el formulario y eso ya te mueve todos los controles con todos sus eventos. Y de la misma manera se facilitaría cualquier otro cambio de diseño, como por ejemplo si decidieses sustituir el tabcontrol por un panel con scrollbars que dentro tenga todos los UserControls.

    Este mismo criterio se aplica si en lugar de un TabControl estás usando cualquier otro procedimiento por el que ciertos "fragmentos" de un Form encapsulan cierta funcionalidad relativa a cada fragmento. Si esos fragmentos los pones en UserControls en lugar de ubicarlos directamente sobre el Form, esto opea como "subrutinas" para la interfaz de usuario, permitiéndote reconfigurar la interfaz de forma sencilla a la vez que el código se mantiene ordenado porque los eventos están dentro del UserControl en lugar de "desparramarse" por todo el código fuente del formulario.

    jueves, 31 de agosto de 2017 10:54
    Moderador