Oi PauloAlmeida-6098!
O código não é suportado pela Microsoft, mesmo que eu tente ajudá-lo um pouco, como extramile, e informações gerais.
Bem-vindo ao Microsoft Q&A!
Para impedir que o usuário abra mais de uma instância de um formulário em C#, você pode utilizar a classe Application
para verificar se o formulário já está aberto e, se estiver, trazê-lo para o primeiro plano em vez de abrir uma nova instância. Aqui está um exemplo de como você pode implementar isso:
C#
// Verifica se o formulário já está aberto
Form frm = Application.OpenForms.Cast<Form>().FirstOrDefault(x => x is SeuFormulario);
if (frm != null)
{
// Se o formulário já está aberto, traz para o primeiro plano
frm.BringToFront();
}
else
{
// Se não está aberto, cria uma nova instância e mostra
frm = new SeuFormulario();
frm.Show();
}
Substitua SeuFormulario
pelo nome da classe do seu formulário. Esse código verifica se uma instância do formulário já existe na coleção Application.OpenForms
. Se existir, ele usa o método BringToFront
para trazer a instância existente para o primeiro plano. Se não existir, ele cria uma nova instância e a exibe.
Espero que essas dicas ajudem a resolver o problema! Se precisar de mais assistência, estou à disposição.
Saudações
Jonathan.
-----------
Se a resposta for a solução correta, clique em "Aceitar resposta" e vote educadamente nela. Se você tiver perguntas adicionais sobre essa resposta, clique em "Comentar". Nota: Siga as etapas em nossa documentação para habilitar notificações por e-mail se você gostaria de receber notificações por e-mail relacionadas a este tópico.