C# 怎么处理关闭事件

yuee319 2010-11-10 11:34:27
有一个窗体要实现单击右上角关闭按钮时弹出信息,有一个Button的关闭按钮弹出的不是一样的信息

我在右上角关闭按钮上做关闭事件
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result = MessageBox.Show("信息尚未处理,是否关闭? ", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
if (result == DialogResult.Yes)
{
e.Cancel = false;
}
else
e.Cancel = true;
}



在按钮上的关闭事件
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("是否关闭? ", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
if (result == DialogResult.Yes)
{
this.close();
}

}

当执行完按钮事件的时候,还会执行Form1_FormClosing事件,要怎么样才能让他不执行的?????
...全文
406 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
John1CSDN 2010-11-14
  • 打赏
  • 举报
回复
  private void button1_Click(object sender, EventArgs e)
{
this.close();
}
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yja886 的回复:]
这个方案算是最好的了!
[/Quote]

如果助长胡乱“设计”,这样对一个团队好不了的!

一个团队的设计师是干什么吃的?它会保证每一个设计都按照原计划的预案正常执行,并且他每隔1、2天就会回归所有的测试用例。那么显然前一个设计之所以出现bug,就是因为被这第二个人胡乱修改了其流程。

一些貌似“聪明”的甚至深得学校教师喜爱的程序员,其实他们只是学到了搅乱团队的“本事”,当它们胡乱地编程之后,你再让他们负责则很困难。
SunnyBoy 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]
先执行一句
this.FormClosing -= Form1_FormClosing;
然后
this.Close();
[/Quote]
这个方案算是最好的了!
wangwenzhuang 2010-11-14
  • 打赏
  • 举报
回复
一个变量
doubleu2005 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]

先执行一句
this.FormClosing -= Form1_FormClosing;
然后
this.Close();
[/Quote]
这样可以,但不要对程序的其他部分造成影响
guyoujing 2010-11-14
  • 打赏
  • 举报
回复
学习。。。
telancs 2010-11-14
  • 打赏
  • 举报
回复
取消代理是最好的
Allen_studying 2010-11-14
  • 打赏
  • 举报
回复
我来学习的
BeFore27 2010-11-14
  • 打赏
  • 举报
回复
Application.Exit();
缪军 2010-11-14
  • 打赏
  • 举报
回复
button1_Click中不要写任何代码,直接调用Form1_FormClosing,
并且把button1作为参数传进去,然后通过判断sender是否是button1,进行不同的处理
changebubu 2010-11-14
  • 打赏
  • 举报
回复
Application.Exit(); // 退出应用程序
peng2739956 2010-11-14
  • 打赏
  • 举报
回复

DialogResult result = MessageBox.Show("确定关闭当前窗口?", "关闭窗口", MessageBoxButtons.YesNo);
if (result == DialogResult.No)
{
e.Cancel = true;
}
else
{
Application.ExitThread();
}

//按钮
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("是否关闭? ", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
if (result == DialogResult.Yes)
{
Application.Exit();
}

}


ronaltn 2010-11-13
  • 打赏
  • 举报
回复
嗯,不错,取消事件注册。
Ann725 2010-11-13
  • 打赏
  • 举报
回复
还有种方法,我说的不是针对你的这个例子,
Application.Close();
yuee319 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]
先执行一句
this.FormClosing -= Form1_FormClosing;
然后
this.Close();
[/Quote]

正确!
yuee319 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ysl88881111 的回复:]
晕,这也是个问题啊,做个变量控制一下呗!
[/Quote]
那你说怎么个变量做法控制的??
Isnotsuitable 2010-11-12
  • 打赏
  • 举报
回复
this.FormClosing -= Form1_FormClosing;
this.Close();
kid_wang 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]

先执行一句
this.FormClosing -= Form1_FormClosing;
然后
this.Close();
[/Quote]
你瞅瞅,呵呵
whowhen21 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]
先执行一句
this.FormClosing -= Form1_FormClosing;
然后
this.Close();
[/Quote]
就这样嘛,先取消事件订阅就行啦~!
YSL88881111 2010-11-11
  • 打赏
  • 举报
回复
晕,这也是个问题啊,做个变量控制一下呗!
加载更多回复(3)

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧