Inquiridor
Como dar foco ao formulário que já está aberto?

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(); } }
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".
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 31 de outubro de 2016 12:15
- Não Marcado como Resposta Hannibal0hn terça-feira, 20 de dezembro de 2016 02:36
-
-
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.