代码如下,
private void StartForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (DialogResult.OK == MessageBox.Show("确认退出?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information))
{
Application.Exit();
}
else
e.Cancel = true;
}
而我把Application.Exit()注释掉就正常弹出一次对话框了,新人不解!请大家帮帮忙!
这个是很正常的,当执行Application.Exit();时,就激活窗体的关闭事件,从而调用该事件的处理程序StartForm_FormClosing,你这样写相当于递归调用
,修改如下:
private void StartForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (DialogResult.Cancel == MessageBox.Show("确认退出?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information))
{
e.Cancel = true;
}
}
点击关闭出发关闭事件 一次
事件中,Application.Exit();会再次触发关闭事件 二次