我的应用程序似乎完全跳过Form_Closing事件,我不确定原因。我试图通过使用e.cancel调试它并在它关闭时显示一个消息框,但消息框从未显示,并且e.cancel不会取消它。我的代码是
public void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (isClosed == false)
{
e.Cancel = true;
base.OnFormClosing(e);
this.Hide();
this.WindowState = FormWindowState.Minimized;
}
else
{
Application.Exit();
}
}
谢谢:)
答案 0 :(得分:1)
您的方法具有适合FormClosing事件处理程序的签名,但您调用的base.OnFormClosing
仅适用于OnFormClosing
覆盖。
选一个。例如,覆盖看起来像
protected override void OnFormClosing(FormClosingEventArgs e)
{
if (isClosed == false)
{
e.Cancel = true;
base.OnFormClosing(e);
Hide();
WindowState = FormWindowState.Minimized;
}
else
{
Application.Exit();
}
}
答案 1 :(得分:-1)
首先只使用消息框确定您正确的事件 然后检查isclosed的值,因为我怀疑它是真的。