Re: Copiar Varibales De Un Form A Otro
Citar:
Es que no te comprendo no que no lo haya leído.
Tu tienes un formulario principal en el que ofreces un menú y una barra. El usuario elige una opción y tu tienes que enseñarle el formulario correspondiente
¿Acaso no vas a crear una instancia de ese formulario? ¿No harás algo como esto
Dim f as new FormularioOpcion
Y si lo haces ¿No te da lo mismo pasarle ya un parámetro?
Dim F as new FormularioOpcion(Cn)
Es que no te entiendo.
No era este el tema por el que intervine en el hilo y cuando lo mencioné tal vez no me expliqué bien.
El caso es que usar los argumentos del constructor no es la única forma de asignar a un atributo (variable) de un objeto una referencia de otro objeto y debes considerar varias cosas que ya mencioné antes.
Usar un formulario (por más que sea una clase) para manipular datos no es lo mejor. Sería mejor que crearas una clase aparte y que integraras a esa clase, la clase del formulario como una clase que se encarga del interfaz gráfico. Si exploras este planteamiento verás que no es necesario hacer lo que mencionas.
Pero si quieres usar los formularios del modo en el que lo planteas y abrirás ese formulario con el método showmodal (o showdialog), entonces no te queda alternativa que hacerlo del modo que planteas.
Entonces mi respuesta a tu pregunta es que si acotas las posibilidades diseño al código que muestras no te queda opción que hacerlo así.
¿Es correcto que lo hagas así? Si no mezclas paradigmas sí. Si no usas variables públicas en el formulario, sí. Si los controles de los formularios no son públicos, sí.
Me parece que te resultaría útil explorar otros posibles diseños de clases, es decir otras posibles "arquitecturas" para una aplicación.
Edito:
Revisé el hilo y caí en la cuenta de que cometí un error. Mencioné que gambas instanciaría automáticamente el formulario y que por tanto la instanciación por código sería redundante, pero no es así: gambas sólo instancia automáticamente un formulario si está establecido como clase inicial de la aplicación. Edite esas líneas para evitar confusiones a quienes lean este hilo.