Réglage par programme closereason

Je veux mettre le CloseReason d'un formulaire après que je l'appelle.Close() à l'intérieur de la forme.

Généralement, cette forme est fermée par lui-même à l'appel de Cette.Close(), mais je veux demander à l'utilisateur si ils veulent VRAIMENT pour fermer le formulaire, et envoyez une mbox avec quelques infos. Mais j'ai ceci:

protected override void OnFormClosing(FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.UserClosing)
        {
            if (MessageBox.Show("¿Desea Salir realmente?\nLa factura aun no ha sido pagada por lo que volverá a la pantalla anterior y podrá seguir agregando productos") == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
        base.OnFormClosing(e);
    }

Mais à chaque fois que je l'appelle.Close(); le CloseReason est toujours UserClosing.

Puis-je le mettre après l'appel ou je dois gérer le OnFormClosing différents?

  • BTW: MessageBox.show() est incomplète parce que je l'ai écrit ici, pas de VS
  • J'ai également constaté que la CloseReason pour appeler le Formulaire.Close() semble toujours être UserClosing. C'est un peu idiot car UserClosing il vraiment que surviennent lorsque l'utilisateur cliquait sur le bouton fermer, sélectionner fermer à partir du menu système, ou Alt+F4 est la forme.
InformationsquelleAutor josecortesp | 2009-12-28