title: Setting programmatically closereason
body: <p>I want to set the CloseReason of a form after I call This.Close() inside the form.</p>
  
  <p>Usually, this forms is closed by itself calling This.Close(), but I want to ask the user if they REALLY want to close the form, and send a mbox with some info. But I have this:</p>
  
  <pre><code>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);
      }
  </code></pre>
  
  <p>But every time I call This.Close(); the CloseReason is always UserClosing.</p>
  
  <p>Can I set it after the call or I have to handle the OnFormClosing different?</p>