Demander à l'utilisateur avant de fermer l'application C# WPF
je veux demander à l'utilisateur avant de fermer l'application. Je suis C#.NET 4.0 application. Je suis en utilisant WPF. Je peux le faire sous windows, mais pas dans WPF. L'événement est déclenché lorsque l'utilisateur veut fermer l'application, la boîte de message apparaît, bun peu importe quel bouton est appuyé(oui ou non) l'application se ferme toujours. Pourquoi? Où est l'erreur?
cela fonctionne, mais seulement lorsque l'utilisateur appuie sur "X". Lorsque l'utilisateur appuie sur le bouton avec L'Application.Actuel.Shutdown(); il n'est pas de travail.
private void MainWindowDialog_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBoxResult result = MessageBox.Show("Do you really want to do that?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.No)
{
e.Cancel = true;
}
}
4 réponses
l'événement de clôture ne peut pas être annulé si vous appelez Application.Current.Shutdown()
. Il suffit d'appeler le Window.Close()
méthode à la place, ce qui vous donnera une chance d'opposer votre veto à l'opération de fermeture. Une fois toutes les fenêtres de votre programme fermées, l'application s'arrêtera automatiquement.
pour plus d'information, consultez le Gestion Des Applications page sur MSDN.
appelez Simplement YourMainWindow.Fermez () et utilisez l'événement de fermeture décrit ci-dessus.
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Are you sure to exit?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
e.Cancel = false;
else
e.Cancel = true;
}
Pourquoi ne pas simplement demander à l'utilisateur s'il veut fermer l'application, puis appeler Application.Current.Shutdown()
comme ceci
private void closeButton_Click(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("Do you want to exit?", "Confirm", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
Application.Current.Shutdown();
}
}