C# Form f = new Form(); f.show();this.close(); 为什么2个窗体都关闭了?

[复制链接]
查看11 | 回复5 | 2017-9-20 19:09:27 | 显示全部楼层 |阅读模式
我想用一个窗体打开另一个窗体然后自己关闭,被打开的窗体不关闭。要的是关闭不是隐藏或者什么什么的,谢谢。

回复

使用道具 举报

千问 | 2017-9-20 19:09:27 | 显示全部楼层
C#里面的窗体时线程创建的!一个窗体就是一个线程的!从第一个线程楼里面new出来的窗体,是上一个窗体的子线程所以,当父线程关闭后,就会关闭掉子线程了。这个方法只能这样解决!创建一个窗体或者线程,如果是窗体就隐藏这个主窗体(主线程)在主窗体的Load事件里面,创建你的Form1,比如:Form f = new Form(); f.m_Handle=this.Handle.toInt64();f.show();记得,这个窗体里面需要有个public的全局变量,用来接收父窗体的句柄的。public long m_Handle;然后呢,再在你创建的新窗体f中,随意什么事件中,你再使用代码Form f = new
回复

使用道具 举报

千问 | 2017-9-20 19:09:27 | 显示全部楼层
f.show();这个语句,将新窗口显示之后,会继续执行下一个语句.而你的下一个语句是 this.close(); 如果你关闭了父窗口,子窗口也会一并关闭的.如果你是希望显示子窗口的时候一直等到子窗口关闭再继续下面的语句,你可以改为: f.showdialog(); 如果你希望关闭之前的窗口,那就不能在之前的窗口里面进行new操作.请
回复

使用道具 举报

千问 | 2017-9-20 19:09:27 | 显示全部楼层
this.Opacity = 0;试试,就是把窗体隐藏了
回复

使用道具 举报

千问 | 2017-9-20 19:09:27 | 显示全部楼层
一个是父窗口 一个是子窗口, 父窗口都关闭了, 子窗口能不关闭么!孩子, 还是隐藏吧!
回复

使用道具 举报

千问 | 2017-9-20 19:09:27 | 显示全部楼层
form的name.close();
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行