none
Como dar foco ao formulário que já está aberto? RRS feed

  • Pergunta

  • Estou fazendo uma aplicação e tentando fazer com que não possibilite do usuário abrir vários formulários,
    eu vi que isso é possível com MDI mas não quero usar no meu projeto, quero saber se é possível dar um alerta e dar o foco no formulário quando ele ja estiver aberto, tentei com o seguinte codigo mas nao deu certo.

    private void Btn2_Click(object sender, EventArgs e)

    private void btnCadastroClientes_Click(object sender, EventArgs e)
    {
        CadastroCliente objeto = new CadastroCliente();
        if (Application.OpenForms.OfType<CadastroCliente>().Count() > 0)
        {
            MessageBox.Show("O formulário já está aberto", "Erro")
            objeto.Focus();
        }
        else
        {
            objeto.Show();
        }
    }
    

     
    domingo, 30 de outubro de 2016 15:53

Todas as Respostas

  • Tente utilizando o seguinte código:

    private void btnCadastroClientes_Click(object sender, EventArgs e)
    {
        Form fc = Application.OpenForms["CadastroCliente"]; 
        if (fc != null)
        {
            MessageBox.Show("Formulário já está aberto");
            fc.Focus();
        }
        else
        {
            fc = new CadastroCliente();
            fc.Show();
        }
    }


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    segunda-feira, 31 de outubro de 2016 10:46
  • não deu certo =|
    segunda-feira, 19 de dezembro de 2016 20:02
  • Tente desta forma:

    private void btnCadastroClientes_Click(object sender, EventArgs e)
    {
        foreach (Form form in Application.OpenForms)
        {
            if (form.GetType() == typeof(CadastroCliente))
            {
                form.Activate();
    	    MessageBox.Show("O formulário já está aberto");
                return;
            }
        }
    
        CadastroCliente fc = new CadastroCliente();
        fc.Show();
    }
    
    

    Espero ter ajudado.

    terça-feira, 20 de dezembro de 2016 00:22