Permitir a abertura de somente uma instância de formulário

PauloAlmeida-6098 20 Pontos de reputação
2024-05-15T14:03:13.7966667+00:00

Como impedir que o usuário abra mais de uma instância de formulário?

C#
C#
Uma linguagem de programação fortemente tipada e orientada a objetos com raízes na família C de linguagens e que inclui suporte para programação orientada a componentes.
9 perguntas
0 comentários Sem comentários
{count} votos

1 resposta

Classificar por: Mais útil
  1. Jonathan Pereira Castillo 810 Pontos de reputação Fornecedor da Microsoft
    2024-06-25T17:14:01.8866667+00:00

    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.

    0 comentários Sem comentários