C#窗体关闭FormClosing事件

privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse){DialogResultdr=Messa... private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("dddd", "dff", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (DialogResult.Yes==dr)
{
this.Close();
}
}

在点击form窗体右上角的“x”后执行上面的代码。当我按“是”时候代码执行 this.close();后直接返回到第一个大括号下了,这是怎么回事?安道理不应该是关闭窗体吗?
展开
 我来答
保会通软件
2010-09-29 · TA获得超过636个赞
知道小有建树答主
回答量:370
采纳率:71%
帮助的人:186万
展开全部
FormClosing事件本身就是关闭时发生的事件,可用以程序退时检测文件的完整性,数据库时否关闭等,如果你的目的只关闭的时候有个提示,以防误关闭,那你直接在close事件里写这样的代码:
if (MessageBox.Show("真的要退出系统吗?", "保会通财务软件", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
this.close;//关闭当前窗口
Application.Exit();//退出系统
//两句任选一句
}
else return;
大海的蓝玫瑰ok
2019-06-23
知道答主
回答量:1
采纳率:0%
帮助的人:732
展开全部
this.Close(); 这个方法就是调用Form1_FormClosing()这个方法,所以你这样写就是自己调用自己
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuzhen7053793
2010-09-29 · TA获得超过128个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:207万
展开全部
if (DialogResult.Yes==dr)
{
this.Close();
}
写反了吗?
if (dr==DialogResult.Yes)
{
this.Close();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94f02eb
推荐于2018-03-07 · TA获得超过8613个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4502万
展开全部
逻辑性错误:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("dddd", "dff", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (DialogResult.Yes != dr)
{
e.Cancel = true;
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
剑仔天狼
2010-09-29 · TA获得超过1044个赞
知道答主
回答量:190
采纳率:0%
帮助的人:91万
展开全部
if判断写错了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式