Form - chamando form2, se já existe exibir trás pra frente

<< Click to Display Table of Contents >>

Navigation:  Desktop > Form >

Form - chamando form2, se já existe exibir trás pra frente

Previous pageReturn to chapter overviewNext page

Gostaria de saber como faço para verificar se um formulário já está em segundo plano se estiver

trazer para frente se não criar, utilizando o BringToFront() eu consigo trazer o formulário para frente

mas não sei como verificar se já existe o formulário

 

Solução

 

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        Form2 form2;

 

        private void button1_Click(object sender, EventArgs e)

        {

            if (form2 == null)

            {

                form2 = new Form2();

                // isso informa ao form2 que quando ele fechar, deve incluir

                // na lista de eventos a rotina form2_FormClosed declarada mais abaixo

                form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);

                form2.Show();

            }

            else

            {

                // se é diferente de null, apenas tras pra cima

                form2.BringToFront();

            }

        }

 

        // esta rotina elimina qualquer referencia de form2 na memória (lixo)

        private void form2_FormClosed(object sender, FormClosedEventArgs e)

        {

            form2 = null;

        }

    }