Usuário com melhor resposta
Window_Closing

Pergunta
-
Olá,
private void btnSair_Click(object sender, RoutedEventArgs e)
{
if (!(MessageBox.Show("Deseja sair da aplicação?",
"Confirmação", MessageBoxButton.YesNo) == MessageBoxResult.Yes))
{
e.Handled = true;
}
else
{
Application.Current.Shutdown();
}
}
------------------------------------------------------private void Window_Closing(object sender, CancelEventArgs e){if (!(MessageBox.Show("Deseja sair da aplicação?","Confirmação", MessageBoxButton.YesNo) == MessageBoxResult.Yes)){e.Cancel = true;}else{Application.Current.Shutdown();}}Eu tenho esses dois eventos em uma janela, o meu problema é que quando disparo o btnSair o Window_Closing também é disparado. Não consegui entender o porque.Alguem poderia me ajudar?Obrigado,
Respostas
-
Quando você executa o Application.Current.Shutdown() internamente o Window_Closing() será chamado e executado. O que você pode fazer é criar uma variável que irá controlar se você clicou pelo botão ou não. Se clicou, não executa o "if MessageBox..." do Window_Closing.
Leonardo Borges 'Xis'
"Mas a persistência é o que leva a perfeição."
Se a resposta for útil, marque-a. Poderá ser útil para outros desenvolvedores.- Marcado como Resposta Diogo_Costa sexta-feira, 9 de dezembro de 2011 19:56
Todas as Respostas
-
Quando você executa o Application.Current.Shutdown() internamente o Window_Closing() será chamado e executado. O que você pode fazer é criar uma variável que irá controlar se você clicou pelo botão ou não. Se clicou, não executa o "if MessageBox..." do Window_Closing.
Leonardo Borges 'Xis'
"Mas a persistência é o que leva a perfeição."
Se a resposta for útil, marque-a. Poderá ser útil para outros desenvolvedores.- Marcado como Resposta Diogo_Costa sexta-feira, 9 de dezembro de 2011 19:56
-
Leonardo,
Fiz o que você disse e agora está tudo OK.
Muito obrigado pela força.
Abraços
- Editado Diogo_Costa sexta-feira, 9 de dezembro de 2011 19:56