C#如何在子窗体关闭父窗体

CSDN_jin 2011-03-15 05:25:25
RT


子窗体 this.CLose时 父窗体关闭 不能用Application.Exit 因为还有别的窗体不能关
...全文
197 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN_jin 2011-03-15
  • 打赏
  • 举报
回复
就是说 子窗体对于父窗体是没有依赖性 但是父窗体对子窗体是有依赖性的
CSDN_jin 2011-03-15
  • 打赏
  • 举报
回复
呵呵 直接在子窗体里面关父窗体就OK了
  • 打赏
  • 举报
回复
子窗体之所以作为子窗体,就是不依赖于父窗体的。父窗体之所以为父窗体,就是说它new了一个子窗体,然后show它,所以它在运行时依赖于子窗体。

子窗体要想通知父窗体,只应该通过事件。不过.net的窗体已经设计有Closed事件,父窗体直接在new一个子窗体之后监听子窗体的Closed,然后在子窗体关闭之后关闭自己。

如果你觉得这样设计看起来似乎不“顺”,那么最好先想一下自己是否从对“父窗口、子窗口”这个描述方式、根本的设计原则上就有问题。
CSDN_jin 2011-03-15
  • 打赏
  • 举报
回复
明白了
viki117 2011-03-15
  • 打赏
  • 举报
回复
你在This.Close之前先把开始获得的form父窗体类 form;
form.Close();掉先啊
或者
protected override void OnClosed(EventArgs e)
{
form.Close();
base.OnClosed(e);
}
小方fws 2011-03-15
  • 打赏
  • 举报
回复
同2楼!!!
CSDN_jin 2011-03-15
  • 打赏
  • 举报
回复
到This.Close这句 子窗体就关闭了
CSDN_jin 2011-03-15
  • 打赏
  • 举报
回复
但是 子窗体都是Close 还会执行操作父窗体的代码吗?
viki117 2011-03-15
  • 打赏
  • 举报
回复
哎~~头大。。
子窗体的构造函数的时候传入父窗体啊。。。然后就可以在子窗体操作父窗体了。。
CSDN_jin 2011-03-15
  • 打赏
  • 举报
回复
我是在子窗体的代码里面对父窗体进行关闭
viki117 2011-03-15
  • 打赏
  • 举报
回复
父窗体实例化子窗体的时候

form子窗体 eform = new form子窗体(this);
CSDN_jin 2011-03-15
  • 打赏
  • 举报
回复
3Q 我试试看
viki117 2011-03-15
  • 打赏
  • 举报
回复
form父窗体类 form;
public form子窗体(form父窗体类 _form)
{
form = form;
}

在子窗体关闭的时候:
form.Close();

110,536

社区成员

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

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

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