C#打开一个新窗体的时候关闭另一个窗体

来源:百度知道 编辑:UC知道 时间:2024/05/20 12:00:56
我的两个窗体form1和form2 在form1里点按钮弹出form2 但是要把form1管闭 我用的是this.close() 但是这样的话就都关了
我的代码
//打开窗体
frmMain main = new frmMain();
main.Show();
this.close();

哈哈果然有人遇到这个问题啊。。过去我为这个都苦恼了好几天,才想出来办法。
在你的程序目录下打开这个文件Program.cs。你将会看到这段代码
这个是你的的程序初始窗体,也就是父窗体
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());//这里的Form1就是个父窗体
}
你想想如果父亲都关闭了,然后你又派生子窗体,不可能啊。这个和JAVA不一样。父亲都没啦,哪里来的儿子啊。你得想个办法来2个父窗体对吧。(比喻可能不恰当)

所以你得这样解决。给你个例子

static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
form1 f1=new form1();
Application.Run(f1);
//到此再来一个另外的父窗体,就是你关闭了第一个父窗体,又要打开的一个窗体。比如叫做form2
form2 f2=new form2()
Application.Run(f2);
}
按照上面的写的话程序执行到 this.close()就将f1关闭了,这个时侯他才会执行f2。这样写你就不用new什么东西了 你要关闭第一个父窗体直接this.close()
他就会执行第二个父窗体啦。
============