.net中当关闭子窗体后怎样关闭父窗体

dwphts520 2011-08-31 09:57:39
主窗体如下
Form2 form2 = new Form2();
form2.Show();
this.Close();
可是当我关闭子窗体时 父窗体是被隐藏了 而无法关闭 请大虾们指点
...全文
145 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dwphts520 2011-09-01
  • 打赏
  • 举报
回复
dwphts520 2011-09-01
  • 打赏
  • 举报
回复
C:\Documents and Settings\Administrator\桌面\未命名.jpg
dwphts520 2011-09-01
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dwphts520 的回复:]
不好意思大家,上面的那个写错了 最后一行是this.hide();
[/Quote]

你可以写:
form2.Closed += (ss,ee)=> { this.Close(); };
fsh1985 2011-08-31
  • 打赏
  • 举报
回复
Form1 frm; --主窗体

public Form2(Form1 f)
{
this.frm = f;
}

在子窗体的closing this.frm.close();

xiongxyt2 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wukaiping870123 的回复:]
C# code

//MainFrom父窗体打开子窗体方法
ChildForm frm=new ChildForm(this);
frm.show();
//子窗体
MainFrm mainfrm = new MainFrm();
public ChildForm();
publick ChildForm(MainForm mfrm)
{
mainfrm=mfrm;
……
[/Quote]
这样是可以的

你也可以这样关闭本窗体弹出新窗体
new System.Threading.Thread((System.Threading.ThreadStart) delegate
{
Application.Run(new MainForm());//此处弹出主窗体,在MainForm中可以关闭自己
}).Start();//线程里面是C#的匿名方法
this.Close();//关闭本窗体
dwphts520 2011-08-31
  • 打赏
  • 举报
回复
不好意思大家,上面的那个写错了 最后一行是this.hide();
aqwencheng 2011-08-31
  • 打赏
  • 举报
回复
想弄明白机理看2楼,不响明白只要结果看3楼
ruanwei1987 2011-08-31
  • 打赏
  • 举报
回复
Form2 form2 = new Form2();
form2.Show();
this.Close();

上面各位应该说的不错,
如果用你的这个代码,可以做如下更改
Form2 form2 = new Form2();
form2.ShowDialog();
this.Close();
这样你关闭form2的时候 this也会关闭

异或用
Form2 form2 = new Form2();
form2.Show();
form2.Owner = this;

在form2关闭的时候加上
this.Owner.Close() 就行
yj258213056 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 dwphts520 的回复:]
主窗体如下
Form2 form2 = new Form2();
form2.Show();
this.Close();
可是当我关闭子窗体时 父窗体是被隐藏了 而无法关闭 请大虾们指点
[/Quote]
你在关闭form2后,已经把主窗体关掉了,,何来隐藏?
  • 打赏
  • 举报
回复
[Quote=引用楼主 dwphts520 的回复:]
主窗体如下
Form2 form2 = new Form2();
form2.Show();
this.Close();
可是当我关闭子窗体时 父窗体是被隐藏了 而无法关闭 请大虾们指点
[/Quote]

如果只单纯的关闭窗体 采用 楼上的方法 要实现 退出整个程序
采用 Application.Exit();
assky124 2011-08-31
  • 打赏
  • 举报
回复
Application.Exit();
火星大能猫 2011-08-31
  • 打赏
  • 举报
回复
//MainFrom父窗体打开子窗体方法
ChildForm frm=new ChildForm(this);
frm.show();
//子窗体
MainFrm mainfrm = new MainFrm();
public ChildForm();
publick ChildForm(MainForm mfrm)
{
mainfrm=mfrm;
}
//子窗体关闭事件方法里
mfrm.close();
bdmh 2011-08-31
  • 打赏
  • 举报
回复
将主窗体实例传入form2,这样关闭form2时,可以把主窗体也关闭

Form1 frm;

public Form2(Form1 f)
{
this.frm = f;
}

欲哭无泪 2011-08-31
  • 打赏
  • 举报
回复
Application.Exit();
yj258213056 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dwphts520 的回复:]

不好意思大家,上面的那个写错了 最后一行是this.hide();
[/Quote]
你可以这样写:

this.Hide();
Form2 form2 = new Form2();
form2.Show();
this.Show();

110,533

社区成员

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

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

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