Solicitar que o usuário salve ao fechar o aplicativo
Estou escrevendo o que se resume a um editor de documentos. Quando o aplicativo está sendo fechado, preciso solicitar ao usuário que salve as alterações. Isso é fácil o suficiente. Minha pergunta é quando é apropriadonão solicitar ao usuário e simplesmente descartar dados não salvos e fechar.
No evento FormClosing, a enumeração CloseReason inclui:
NenhumWindowsShutDownMdiFormClosingUserClosingTaskManagerClosingFormOwnerClosingApplicationExitCallEu acho que WindowsShutDown e TaskManagerClosing não devem causar um "salvar alterações?" prompt para aparecer, para impedir que o aplicativo seja interrompido com a exibição desse prompt.
Esta é uma prática padrão ou devo fazer outra coisa aqui?
Para maior clareza, aqui está o código:
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
if (!(e.CloseReason == CloseReason.WindowsShutDown || e.CloseReason == CloseReason.TaskManagerClosing)
&& this.ChangesPending())
{
switch (MessageBox.Show(this, "Save changes?", "Save Changes", MessageBoxButtons.YesNoCancel))
{
case DialogResult.Yes:
this.Save();
break;
case DialogResult.No:
// Do nothing
break;
case DialogResult.Cancel:
e.Cancel = true;
break;
}
}
}