Como confirmar antes de fechar a janela em C#

Em alguns casos recomenda-se confirmar a decisão que o usuário tomou, como por exemplo fechar uma janela. Pra isso podemos usar um MessageBox configurado como o da imagem abaixo:



Para isso, vamos adicionar o código abaixo no evento FormClosing do Form, ficando desta maneira:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    //Criar um MessageBox com os botões Sim e Não e deixar o botão 2(Não) selecionado por padrão
    if (DialogResult.Yes != MessageBox.Show("Tem certeza que deseja fechar a janela?", "Confirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2))
    {
        //Cancelar o evento
        e.Cancel = true;
    }
}

O código cria o MessageBox e já compara o resultado retornado com a enum DialogResult. Qualquer coisa retornada diferente de 'Yes' faz com que o evento disparado seja cancelado, fazendo com que o Form não se feche.

PS: Para que o próprio VisualStudio adicione o bloco de código deste evento basta dar um duplo clique no respectivo nome de evento, que fica na mesma janela das propriedades do Form.



Agora basta fazer as alterações que precisarem, ou mesmo usar como já está.
Até a próxima dica!

3 comentários:

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