谁知道c#怎么在关闭一个窗体的同时打开另一个窗体啊?

时间:2022-08-30 22:36:24
谁知道c#怎么在关闭一个窗体的同时打开另一个窗体啊?

19 个解决方案

#1


在closed事件里面打开新窗体啊.
不过你是不是把主窗体都给关了,主窗体关掉的话整个程序就结束了.

#2


在FormClosed事件中,写打开窗体的代码

#3


最好不要关闭,可以隐藏,然后new一个你想显示的窗体

#4


就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了

#5


该回复于2011-07-19 14:39:55被版主删除

#6


这个问题不止一次的被问过,甚至连标题都差不多。。。

#7



    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
            Form1 form1 = new Form1();
            form1.Show();
    }



如果不是主窗体的话这样就可以了吧

#8


引用 4 楼 ace_yong 的回复:
就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了

都说了,因为你关的那个是主窗体,主窗体是不能关的,只能隐藏,一关的话整个程序就结束了

#9


FormClosed里面写代码即可!

#10


在Closing事件里面加。

#11


这个问题看似简单,其实并不是那么回事!
如果我们在Colsed事件理处理,我们用是show或showDialog都是不行的,前者“只能闪一下就没了”,后者由于是模式对话框显示,主线程会阻塞在此,第一个窗体根本不会关闭!

解决办法:在Colsed事件函数理,用事件或委托通知主程序,在主程序签约的方法里打开第二个窗体!

#12


.Hide()

#13


在Programm.cs里面这么写

  LoginForm login = new LoginForm();
            Application.Run(login);
            if (login.DialogResult == DialogResult.OK)
                Application.Run(new MainForm());

LoginForm上的关闭按钮上写

       this.DialogResult = DialogResult.OK;
                                this.Close();

  此消息通过 【CSDN论坛 Winform测试版】 回复!

#14


引用 4 楼 ace_yong 的回复:
就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了


可以在Program.cs文件里,添加如下代码:
static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form2 form2 = new Form2();
            form2.ShowDialog();
            Application.Run(new Form1());
        }

 Form2 form2 = new Form2();
 form2.ShowDialog();

其中Form1是主窗体。首先,程序运行之后,显示的是Form2,当关闭Form2的后,Form1 即主窗体Form1显示。当显示Form2 的时候,还可以在它上面进行一些操作。如果不关闭Form2,Form1将不会显示。
本人测试通过。

楼主可以试试。

#15


学习!

#16


引用 14 楼 liu447862556 的回复:
引用 4 楼 ace_yong 的回复:
就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了


可以在Program.cs文件里,添加如下代码:
static void Main()
  {
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRen……

这个方法我之前也试了,前一个窗体一样是隐藏的,没关掉

#17


该回复于2011-07-19 17:28:08被版主删除

#18


引用 16 楼 ace_yong 的回复:
引用 14 楼 liu447862556 的回复:
引用 4 楼 ace_yong 的回复:
就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了


可以在Program.cs文件里,添加如下代码:
static void Main()
{
Application.EnableVisualStyles();
Application……


楼主,你想怎么样?我都有点不明白你的意思了。你想要什么样的效果或功能?
难道你想Application.Exit();整个程序就退出了。还是想释放不用的资源,this.Dispose()?

你可以参看一下这个http://blog.csdn.net/canon787/article/details/2494798

#19


好的  谢谢大家了!

#1


在closed事件里面打开新窗体啊.
不过你是不是把主窗体都给关了,主窗体关掉的话整个程序就结束了.

#2


在FormClosed事件中,写打开窗体的代码

#3


最好不要关闭,可以隐藏,然后new一个你想显示的窗体

#4


就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了

#5


该回复于2011-07-19 14:39:55被版主删除

#6


这个问题不止一次的被问过,甚至连标题都差不多。。。

#7



    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
            Form1 form1 = new Form1();
            form1.Show();
    }



如果不是主窗体的话这样就可以了吧

#8


引用 4 楼 ace_yong 的回复:
就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了

都说了,因为你关的那个是主窗体,主窗体是不能关的,只能隐藏,一关的话整个程序就结束了

#9


FormClosed里面写代码即可!

#10


在Closing事件里面加。

#11


这个问题看似简单,其实并不是那么回事!
如果我们在Colsed事件理处理,我们用是show或showDialog都是不行的,前者“只能闪一下就没了”,后者由于是模式对话框显示,主线程会阻塞在此,第一个窗体根本不会关闭!

解决办法:在Colsed事件函数理,用事件或委托通知主程序,在主程序签约的方法里打开第二个窗体!

#12


.Hide()

#13


在Programm.cs里面这么写

  LoginForm login = new LoginForm();
            Application.Run(login);
            if (login.DialogResult == DialogResult.OK)
                Application.Run(new MainForm());

LoginForm上的关闭按钮上写

       this.DialogResult = DialogResult.OK;
                                this.Close();

  此消息通过 【CSDN论坛 Winform测试版】 回复!

#14


引用 4 楼 ace_yong 的回复:
就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了


可以在Program.cs文件里,添加如下代码:
static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form2 form2 = new Form2();
            form2.ShowDialog();
            Application.Run(new Form1());
        }

 Form2 form2 = new Form2();
 form2.ShowDialog();

其中Form1是主窗体。首先,程序运行之后,显示的是Form2,当关闭Form2的后,Form1 即主窗体Form1显示。当显示Form2 的时候,还可以在它上面进行一些操作。如果不关闭Form2,Form1将不会显示。
本人测试通过。

楼主可以试试。

#15


学习!

#16


引用 14 楼 liu447862556 的回复:
引用 4 楼 ace_yong 的回复:
就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了


可以在Program.cs文件里,添加如下代码:
static void Main()
  {
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRen……

这个方法我之前也试了,前一个窗体一样是隐藏的,没关掉

#17


该回复于2011-07-19 17:28:08被版主删除

#18


引用 16 楼 ace_yong 的回复:
引用 14 楼 liu447862556 的回复:
引用 4 楼 ace_yong 的回复:
就是关掉原来的这个窗体然后打开另一个啊 ,大家的方法我都试了 都不行,都被析构掉了 只能闪一下就没了


可以在Program.cs文件里,添加如下代码:
static void Main()
{
Application.EnableVisualStyles();
Application……


楼主,你想怎么样?我都有点不明白你的意思了。你想要什么样的效果或功能?
难道你想Application.Exit();整个程序就退出了。还是想释放不用的资源,this.Dispose()?

你可以参看一下这个http://blog.csdn.net/canon787/article/details/2494798

#19


好的  谢谢大家了!

#20