Caixa com mensagem de confirmação de saída em C#

Olá leitores,

Abaixo está um clássico exemplo para criar um MessageBox que pede confirmação de saída para o usuário. No exemplo abaixo foi criada uma tela com apenas um Button para fechar a aplicação.

No evento Click deste Button está o seguinte código:



if (MessageBox.Show("Tem certeza que deseja sair da aplicação?", "Confirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
    this.Close();
}


Ele mostra uma MessageBox com o texto e título, os botões disponíveis e o ícone. O resultado será comparado com o DialogResult.Yes, assim retornando verdadeiro quando o usuário clicar em sim.

E o resultado ao clicar nele é este da imagem:



Também podemos usar o evento FormClosing do Form para quando o usuário fechar diretamente pelo "X". Neste caso, se o usuário clicar em "Não desejo sair", devemos cancelar o evento da seguinte forma:

Dar duplo clique no evento FormClosing do Form


E no método que o Visual Studio criar, adicionar o seguinte código:



private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (MessageBox.Show("Tem certeza que deseja sair da aplicação?", "Confirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
    {
        e.Cancel = true;
    }
}


Neste caso, a comparação é feita com o "DialogResult.No", pois se o usuário não quiser sair será atribuído o valor true para o atributo Cancel.

Além de confirmações para sair da aplicação, também é possível fazer várias outras coisas com este modelo, como confirmação de exclusão, inserção, atualização de registros, etc. Basta seguir a mesma lógica.

Até o próximo post.
Abraço

5 comentários:

  1. Respostas
    1. Que bom que pude lhe ajudar. Obrigado pelo comentário. Abs

      Excluir
  2. Por que mesmo apertando em "Não", ele fecha?

    ResponderExcluir
    Respostas
    1. Oi Seung, será que sua condição IF está correta? Do jeito que está explicado no post o que você está relatando não deve acontecer.

      Abraço!

      Excluir
  3. explicação master!! perfeita!! entendi tudo!

    está de parabéns!!

    ResponderExcluir

Não esqueça de enviar um comentário. Isto motiva o autor a continuar postando e também é uma forma de agradecimento