现在有主窗体Form1和窗体Form2,主窗体上有个btn,点击进入Form2的同时Form1消失,代码该怎么写?

gracejty 2004-05-03 12:05:23
现在有主窗体Form1和窗体Form2,主窗体上有个btn,点击进入Form2的同时Form1消失,代码该怎么写?
static void Main()
{
Form1 form1 = new Form1 ();
Application.Run(form1);

}

private void button1_Click(object sender, System.EventArgs e)
{
Form2 form2 = new Form2 ();
form2.Show ();
//可是怎么在这里实现让form1消失呢?


}
...全文
72 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gracejty 2004-05-03
不过你说的哪个独立进程的方法是有效的,谢谢了。
  • 打赏
  • 举报
回复
gracejty 2004-05-03
上面的写法,编余后还是有form1呀。
  • 打赏
  • 举报
回复
gracejty 2004-05-03
re: zhjboss(小张) ( )
讲的很多,但是我还是不知道怎么写。能说明白点吗?
这样写对吗?但是好象还是不可以也。
private void button1_Click(object sender, System.EventArgs e)
{
Form2 form2 = new Form2 ();
form2.Show ();
Form1 form1 = new Form1 ();
form1.Hide ();

}
  • 打赏
  • 举报
回复
bobseadream 2004-05-03
将主窗体隐藏掉,可以添加如下代码:form1.Hide();
  • 打赏
  • 举报
回复
zhjboss 2004-05-03
WinForm程序一般都是从一个Form的static void Main()开始运行,暂且称此Form为MainForm。Main函数的一般写法是:static void Main()
{
Application.Run(new Form1());
}




这样的写法有一个问题:如果需要从Form1中调出另一个Form,必须保持Form1不能关闭,比如在一个Button的Click中调出Form2:private void button1_Click(object sender, System.EventArgs e)
{
(new Form2()).Show();
}




可以看到两个Form同时显示在屏幕上,如果改成:private void button1_Click(object sender, System.EventArgs e)
{
(new Form2()).Show();
this.Close();
}




那么执行到this.Close()时,整个应用程序将终止运行,Form2也会自动关闭。

如果需要仅仅显示Form2,除了将Form1.Close改为Form1.Hide之外,还有一种办法,就是将Main改为:static void Main()
{
(new Form1()).Show();
Application.Run(); // 启动独立的应用程序线程
}




这样Form1中的this.Close()就不会导致应用程序终止运行了,而且不需要Form1时,可以真正Close从而释放一些资源。不过,应用程序的终止就不要在其他地方控制了,比如在Form2的Closed事件中:private void Form2_Closed(object sender, System.EventArgs e)
{
Application.Exit();
}



  • 打赏
  • 举报
回复
gracejty 2004-05-03
事关人命,
大家帮帮我。
  • 打赏
  • 举报
回复
gracejty 2004-05-03
各位哥哥帮我看看啊。小妹在这里感激不进了。
  • 打赏
  • 举报
回复
gracejty 2004-05-03
谢谢楼上的,问题算是圆满解决了。
谢谢。
  • 打赏
  • 举报
回复
残崖孤鹰 2004-05-03
private void button1_Click(object sender, System.EventArgs e)
{
Form2 form2 = new Form2 ();
form2.Show ();
this.Hide ();
}
上面三行这样就OK啦,,不能用this.Close();
关闭程序时在Form2的Closed事件加上Application.Exit();要不程序退不出去!
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-05-03 12:05
社区公告

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