Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/08/2008, 09:50
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Regresarse desde un form a otro

Existen muchas formas de hacerlo, pero cuál es la correcta depende de cómo el Form1 invoca al Form2, y quién invoca al Form1.

1. Suponiendo que el Form1 es el inicial y al invocar al form2, se oculta (.Hide()). En ese caso lo mejor es llamar al 2 con un .ShowDialog, para que el proceso del Form1 quede en espera y se reactive al cerrarse el Form2 (.Show()). Relativamente práctico, pero ineficiente.

2. Suponiendo que el Form1 muere al llamar al Form2, la única forma de volver es que el Form2 cree una instancia de Form1 y lo invoque, para luego cerrarse. Es un completo desperdicio de recursos, pero funciona.

3. Suponiendo que ambos existen como hijos de un Form principal, el cual tiene la propiedad .Mdi en True, la forma de llamarlo es enviando un mensaje al form padre para que invoque al Form1 hijo y luego cerrar al Form2 (y viceversa). Es una de las más eficientes y se hace con la función CType(): CType(Widows.Forms.Form, FormPadre).MetodoInvocarForm1().

4. Una cuarta forma es haciendo que ambos forms existan todo el tiempo instanciados en la clase creadora de la aplciación, y simplemente se los active o desactive (.Hide() y .Show()) a través de los eventos de sus botones respectivos.

¿Se entiende el planteo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)