Monstrar Formulario Padre (sin crear otro de el) C#

Iniciado por SrTrp, 7 Abril 2019, 06:22 AM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Bueno como podria lograr esto ya que tengo el formulario padre y con el abro otros formularios hijos y para esto hago lo siguiente para obtener algo de estetica y no se vea tan mal
Código (csharp) [Seleccionar]

Form2 fm = new Form2();
fm.Show();
this.Hide();

Se esconde el formulario padre y se muestra el formulario hijo pero si quiero volver al formulario padre tengo que crear otro objeto en este caso (form1) que es el formulario es decir el formulario que oculte no lo puedo monstrar de nuevo?
Y haciendo lo que hago cierro el formulario padre que cree pero no se cierra por completo mi app.

ThunderCls

Cita de: SrTrp en  7 Abril 2019, 06:22 AM
Se esconde el formulario padre y se muestra el formulario hijo pero si quiero volver al formulario padre tengo que crear otro objeto en este caso (form1) que es el formulario es decir el formulario que oculte no lo puedo monstrar de nuevo?

Necesitas pasar la instancia del formulario principal a los formularios hijos para que de esta forma puedas manipular y llamar a sus funciones.

1- Una posible solucion seria tener una variable en cada clase hija:

Código (csharp) [Seleccionar]
    public partial class Form2 : Form
    {
        Form1 form1;
        public Form2(Form1 pForm1)
        {
            InitializeComponent();
            this.form1 = pForm1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            form1.Show();
            this.Close();
        }
        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            form1.Show();
        }
    }


2- Otra forma es usar el metodo Show(Owner)

Código (csharp) [Seleccionar]
        // Form1
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.Show(this);
            this.Hide();
        }

        // Form2
        private void button1_Click(object sender, EventArgs e)
        {
            this.Owner.Show();
            this.Close();           
        }
        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Owner.Show();
        }

-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/