【发布时间】:2009-12-28 17:05:09
【问题描述】:
我想在表单内部调用 This.Close() 后设置表单的 CloseReason。
通常,此表单通过调用 This.Close() 自行关闭,但我想询问用户是否真的要关闭表单,并发送包含一些信息的 mbox。但我有这个:
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);
}
但是每次我调用 This.Close(); CloseReason 始终是 UserClosing。
我可以在通话后设置它还是我必须处理不同的 OnFormClosing?
【问题讨论】:
-
顺便说一句:MessageBox.show() 不完整,因为我在这里写的,而不是在 VS 中
-
我还发现调用 Form.Close() 的 CloseReason 似乎总是 UserClosing。这有点傻,因为 UserClosing 应该只在用户点击关闭按钮、从系统菜单中选择关闭或 Alt+F4 的表单时才会出现。