C#程序关闭问题!高手请指导一下

我想实现的功能是,当用户点击关闭按钮的时候,弹出询问是否退出。具体代码我已经实现了,可是有BUG会弹出多次询问。
this.FormClosing += new FormClosingEventHandler(FormClosing);这是窗口启动时的代码。
private void FormClosing(object sender, FormClosingEventArgs e)//退出提示
{
if (DialogResult.Yes == MessageBox.Show("确认退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
{

Application.Exit();
}
else
{
e.Cancel = true;
}

}
这是事件代码。请高手帮我看看怎么解决?

第1个回答  2013-06-06
在窗体的closing事件中:
void frm_closing(object sender, FormClosingEventArgs e)
{
if(MessageBox.Show("确认退出?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2)==DialogResult.OK)
{
e.Cancel=false;
}
else
{
e.Cancel=true;
}
}追问

并不能关闭整个程序啊。我要关闭整个程序啊

追答

这个closing事件写到你的启动主窗体里,看一下。

追问

主窗体是登录窗体!

追答

那这样你试试。还是在窗体的closing事件里,代码这样改
bool run = true;
if (run)
{
if (MessageBox.Show("确认退出?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
run = false;
Application.Exit();
}
else
{
e.Cancel = true;
}
}

第2个回答  2013-06-06
在if里面使用 System.Environment.Exit(0);来释放资源本回答被提问者采纳
第3个回答  2013-06-06
改成这样就好了:
this.FormClosing -= new FormClosingEventHandler(FormClosing);
this.FormClosing += new FormClosingEventHandler(FormClosing);追问

没有效果

相似回答