将窗口关闭设为隐藏,然后又要在窗口关闭以前执行某个操作

mydriverc 2007-07-27 04:51:16
我有两个窗口,MainForm和Form2,在MainForm中点击按钮弹出Form2

本人通过以下代码将Form2关闭改为隐藏,
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Hide();

}
现在遇到的问题是,
我想在From2关闭的时候保存文件或者其他操作,
但程序永远不会执行CLosed()里的代码,
而Closing()里面也不能再执行保存代码,因为里面已经又了隐藏窗口的代码.

大家有没有好办法?!

...全文
217 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mydriverc 2007-07-30
  • 打赏
  • 举报
回复
这个方法倒比较实在哈!
谢谢了!!
结贴给分了!
redleaf1995 2007-07-27
  • 打赏
  • 举报
回复
在form2中添加一全局变量,
public bool isHide = true;

frm是form2对象

MainForm代码:
//想隐藏form2时
frm.isHide = true;
frm.FormClosing();

//想关闭form2时
frm.isHide = false;
frm.FormClosing();

form2代码:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if(isHide)
{
e.Cancel = true;
this.Hide();
}
else
{
//执行保存操作
e.Cancel = false;
}

}
xwk789xwk 2007-07-27
  • 打赏
  • 举报
回复
有点不明白,帮顶一下
mydriverc 2007-07-27
  • 打赏
  • 举报
回复
呵呵.是的.
可是我在form2的Closing中写了
e.Cancel = true;
this.Hide();
ezhuyin 2007-07-27
  • 打赏
  • 举报
回复
比如mainform_Closing()
{
m_Form2.Closing();
}

然后具体要做什么写在Form2的closing里面,这样比较不会乱。
ezhuyin 2007-07-27
  • 打赏
  • 举报
回复
嗯。如果你是通过关闭主窗体来实现的话,直接在主窗体的Closing里面调用Form2的方法就可以。
mydriverc 2007-07-27
  • 打赏
  • 举报
回复
我想到了一个办法,
在主窗口的Closing里面执行一个Form2的方法
mainform_Closing(....)
{
m_Form2.SaveFile();
}
wweennbb 2007-07-27
  • 打赏
  • 举报
回复
你主要想干什么,不一定要这样才能实现。。。
换个方法应该也可以实现
mydriverc 2007-07-27
  • 打赏
  • 举报
回复
对,关闭主窗体后,就关闭了.但不会执行Form2的Closed()的代码了
wweennbb 2007-07-27
  • 打赏
  • 举报
回复
ezhuyin(碧海蓝天) ( ) 信誉:100

关掉主窗体。Form2就自动关闭了

ezhuyin 2007-07-27
  • 打赏
  • 举报
回复
我想问的是,你这样做了,又如何去“关闭”Form2呢?

110,534

社区成员

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

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

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