现在有主窗体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消失呢?


}
...全文
97 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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();要不程序退不出去!

110,538

社区成员

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

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

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