c#怎么关闭当前窗体2(form2)以及窗体1(form1)并打开窗体3(form3)
1个回答
展开全部
您好,这样的:
按照正常的在你form1的关闭按钮单击事件里写上
this.Close();
from2 f2=new form2();
f2.Show();
这样你会发现按下关闭后整个程序都关了,
原因在于你这个程序有个入口点,也就是我们C#里面提到的Main方法,在WForm窗体编程中,点解决方案资源管理,里面有个Program.cs类,点开它,在Main方法里有这样一行代码
Application.Run(new Form1());
这是一个系统的静态类Application的一个Run方法,为了实现程序第一个启动的的程序,里面写的 new Form1() 就是启动了一个Form1的对象,这也就是每次我们程序点调试时候会第一个弹出Form1窗口的原因。
为了实现你提到的问题,我们可以把Application.Run(new Form1()); 发放里的new Form1();给去掉,然后在其前面手动把Form1给Show出来;Program这个类的代码改成如下:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 f1=new Form1();
f1.Show();
Application.Run();
}
}
}
这样就可以解决你说的问题了。
按照正常的在你form1的关闭按钮单击事件里写上
this.Close();
from2 f2=new form2();
f2.Show();
这样你会发现按下关闭后整个程序都关了,
原因在于你这个程序有个入口点,也就是我们C#里面提到的Main方法,在WForm窗体编程中,点解决方案资源管理,里面有个Program.cs类,点开它,在Main方法里有这样一行代码
Application.Run(new Form1());
这是一个系统的静态类Application的一个Run方法,为了实现程序第一个启动的的程序,里面写的 new Form1() 就是启动了一个Form1的对象,这也就是每次我们程序点调试时候会第一个弹出Form1窗口的原因。
为了实现你提到的问题,我们可以把Application.Run(new Form1()); 发放里的new Form1();给去掉,然后在其前面手动把Form1给Show出来;Program这个类的代码改成如下:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 f1=new Form1();
f1.Show();
Application.Run();
}
}
}
这样就可以解决你说的问题了。
追问
关闭当前窗口并打开第二个窗体可以,但是同时关闭第一个窗体和第二个窗体并打开第三个窗体就不行了,还是说我写的代码有问题?可以麻烦你帮我写一下吗?谢谢!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |