none
aplicacion de windows form RRS feed

  • Pregunta

  • saludo quiero una ayuda. 

    yo hago lo siguiente, 

    tengo dos formularion form1 y form2.

    en el form1 tegno un boton que al darle click me cierra el form1 y me abre el form2.

    {

    form2 F2 = new form2();

    F2.Show();

    this.Hide();

    }

    entonces lo que quiero es que al darle al boton del form2 me cierre ese formulario y me abra el form1.

    {

    // al implementar esto me da error en la instancia.

    form1 F1 = new form1();

    F1.Show();    

    this.Hide();

    }

    sábado, 19 de octubre de 2019 15:01

Todas las respuestas

  • Hola

    intenta con showdialog

    {
       form2 F2 = new form2();
       this.Hide();
       F2.ShowDialog();
       this.Show();
    }

    sábado, 19 de octubre de 2019 15:12
  • // al implementar esto me da error en la instancia.

    form1 F1 = new form1();

    F1.Show();   

    El problema cuando haces eso es que te abre otra instancia de la clase Form1. No te hace visible la instancia que ya tenías creada desde antes y que ahora está oculta porque le hiciste un Hide().

    Si sabes que solo vas a usar todo el rato una única instancia de Form1 y Form2, instáncialas al principio desde donde inicies todas las operaciones, guárdalas en variables estáticas, y luego les haces Hide y Show a las instancias estáticas.

    Por ejemplo, si al iniciar abres primero un FormMain y desde ahí quieres abrir el Form1 y el 2, pone en FormMain estas dos variables estáticas:

    public static InstanciaDeForm1 = new Form1();

    public static InstanciaDeForm2 = new Form2();

    Y luego en el botón del Form1 pones:

    FormMain.InstanciaDeForm2.Show(); this.Hide();

    y en el botón del Form2:

    FormMain.InstanciaDeForm1.Show(); this.Hide();

    Por supuesto, donde dice FormMain cámbialo por la clase que estés usando para iniciar el programa (pude ser Program.cs). Y si o inicias desde otro form sino desde el propio Form1, no uses "new Form1", cámbialo por InstanciaDeForm1.



    sábado, 19 de octubre de 2019 15:55
  • me funciona gracias, pero en el Form2 tengo un boton para abrir el form3 y ocurtar el form2, pero lo que sucede es que aparte de ocurtar el form2 y abrir el form3 tambien me abre el form1.
    sábado, 19 de octubre de 2019 16:46
  • hola

    Tienes que detectar el cierre de un form para poner visible nuevamente el que tenias

    entonces desde el form1 usarias

    public void button1_Click(...){
    
         this.Hide();
    
         form2 F2 = new form2();
    
         F2.FormClosed += form2_Closed;
    
         F2.Show();
    
    }
    
    
    public void form2_Closed(...){
       
        this.Show();
    
    }

    usas el evento

     Form.FormClosed Event

    entonces cuando se cierra un form pones nuevamente en visible el que habias ocultado

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 21 de octubre de 2019 5:46