none
[C#]Abrir form em MDI e fechar uma quando abrir outra? RRS feed

  • Pergunta

  • Boa Tarde, a minha duvida é, como faço para abrir um form em uma MDI e depois que abrir outro o anterior se feche ou simplesmente suma do MDI.

    sei que esse não é o certo mais vai dar pra entender o que eu quero!

    Form Consulta = new frmConsulta(); if (Consulta.Show == true) //Se consulta estiver aberto e apenas oculto { Consulta.Hide(); //então apareça } else// se não { Consulta.Show();// abra }

    //Deis de já agradeço!

    quinta-feira, 25 de dezembro de 2014 18:51

Respostas

  • Ola Johnatan Licar

    este  exemplo abaixo faz o seguinte:

    verifica se o Form está aberto, caso sim coloca foco no mesmo, caso nao abre ele novamente.

      //verificar se form ja está aberto e retoma foco
                bool achar = false;
                foreach (Form procuraForm in Application.OpenForms)
                {
                    if (procuraForm is Form1)
                    {
                        procuraForm.Focus();
                        achar = true;
                    }
                }
                if (!achar)
                {
                    Form1 abrir = new Form1();
                    abrir.MdiParent = this;
                    abrir.Show();
                    this.StartPosition = FormStartPosition.CenterScreen;
                }

    • Sugerido como Resposta Marcos_Roberto sexta-feira, 26 de dezembro de 2014 21:40
    • Marcado como Resposta Johnatan Licar sábado, 27 de dezembro de 2014 15:27
    quinta-feira, 25 de dezembro de 2014 19:34

Todas as Respostas

  • Ola Johnatan Licar

    este  exemplo abaixo faz o seguinte:

    verifica se o Form está aberto, caso sim coloca foco no mesmo, caso nao abre ele novamente.

      //verificar se form ja está aberto e retoma foco
                bool achar = false;
                foreach (Form procuraForm in Application.OpenForms)
                {
                    if (procuraForm is Form1)
                    {
                        procuraForm.Focus();
                        achar = true;
                    }
                }
                if (!achar)
                {
                    Form1 abrir = new Form1();
                    abrir.MdiParent = this;
                    abrir.Show();
                    this.StartPosition = FormStartPosition.CenterScreen;
                }

    • Sugerido como Resposta Marcos_Roberto sexta-feira, 26 de dezembro de 2014 21:40
    • Marcado como Resposta Johnatan Licar sábado, 27 de dezembro de 2014 15:27
    quinta-feira, 25 de dezembro de 2014 19:34
  • em outro form eu recebi esse código como resposta.... e deu certo do jeitinho que eu queria!!.... Mais o seu tb é bom... agora tenho duas formas de fazer isso!!...

    private void FechaFilho()
        {
                for (int i = Application.OpenForms.Count - 1; i>=0; i--)
                    if (Application.OpenForms[i].IsMdiChild)
                    {
                        Application.OpenForms[i].Close();
                    }
        }
    
    
            private void ClieCadastro_Click(object sender, EventArgs e)
            {
                FechaFilho();
                lblStatus.Text = Txt;
                Form frm = new frmCadCli();
                frm.MdiParent = this;
                frm.Show();
    
    
            }

    sexta-feira, 26 de dezembro de 2014 21:35
  • Que bom Johnatan Licar

    Então coloca o seu código também e marca a resposta deste post como correta.

    Desta forma deixamos material para quem necessitar.

    Valeu!

    sexta-feira, 26 de dezembro de 2014 21:39