首页 新闻 搜索 专区 学院

Windows Form 关闭窗体

0
[已解决问题] 解决于 2012-03-05 11:03

在Windows Form开发中,窗体右上角有三个按钮,分别是 最小化 最大化 关闭。

当我点击 关闭时,窗体会关闭掉,但我想要的是,点击 关闭 时,只是隐藏 当前窗体,那么这样写:

void Form1_Closed(object sender,EventArgs e)

{this.Hide();}

根本不行,一点击关闭 ,不管里面写什么代码,系统都会销毁Form1窗体。那么该如何实现,点击关闭 变成 隐藏呢?(没分了,真的很抱歉)

king2003的主页 king2003 | 初学一级 | 园豆:161
提问于:2012-03-03 16:33
< >
分享
最佳答案
0

我想在这里说说我的想法和思路,首先,我要实现的是窗体在关闭时隐藏,没有达到关闭效果,那么这肯定和窗体的关闭事件有关,但是和哪个关闭事件有关,我不清楚,于是我就新建一个窗体,不写任何代码,通过F11的单步执行来看看点击关闭的时候会有什么事情发生,结果直接跳转到disposed方法,好吧,那下一步就来猜测一下,在事件列表中找寻有关窗体关闭的事件,包括closing和closed事件,先添加它们,在单步执行的时候发现首先执行closing,然后执行closed,而closed是和原因有关的事件,那就排除,在closeing中尝试,通过e可以获取为closing提供的数据,大胆的想象一下它就可以控制关闭操作,于是可以猜测e有些什么属性是和控制相关的,果真在神奇的“.”之后发现cancel属性,果断将它取消,再次调试结果果真取消了,那就添加隐藏代码,于是乎预期的效果出现了。

  private void testClose_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Hide();
}
WaitingSky | 菜鸟二级 |园豆:300 | 2012-03-03 18:42

嗯,没错,谢了。

嗯,领教了,让我有了一个反思的念头,进步不一定是问出来的,更多的是自己的研究。缺少一点钻研精神

king2003 | 园豆:161 (初学一级) | 2012-03-05 11:03

@king2003: 共同进步

WaitingSky | 园豆:300 (菜鸟二级) | 2012-03-05 12:13
其他回答(2)
0

e.cancel=true试试

麻将我会 | 园豆:24 (初学一级) | 2012-03-03 16:35

嗯,没错,谢了。

支持(0) 反对(0) king2003 | 园豆:161 (初学一级) | 2012-03-05 10:57
0

this.Hide() + e.Cancel = true:

void Form1_Closed(object sender,EventArgs e)
{
this.Hide();
e.Cancel = true;
}

答案来自:How to hide a form instead of closing it - with C# .Net

dudu | 园豆:38805 (高人七级) | 2012-03-03 17:08

嗯,没错,谢了。

支持(0) 反对(0) king2003 | 园豆:161 (初学一级) | 2012-03-05 10:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册