我的项目中有两个窗体:Form1和Form2。Form1中有一个按钮,我要做的是关闭Form1并单击该按钮时显示Form2。
首先,我尝试
Form2 frm = new Form2(); frm.Show(); this.Close();
但是随着Form1关闭,Form2也关闭了。接下来,我尝试了
Form2 frm = new Form2(); frm.Show(); this.Hide();
但是有一个缺点,就是关闭Form2时应用程序不会退出。因此,我不得不在Form2的form_FormClosing部分中放入其他源。
嗯....我想知道这是否是正确的方法....所以,解决此问题的正确方法是什么?
关闭启动窗口时,会编写Program.cs中自动生成的代码来终止应用程序。您需要对其进行调整,以便仅在没有更多窗口可用时才终止。像这样:
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var main = new Form1(); main.FormClosed += new FormClosedEventHandler(FormClosed); main.Show(); Application.Run(); } static void FormClosed(object sender, FormClosedEventArgs e) { ((Form)sender).FormClosed -= FormClosed; if (Application.OpenForms.Count == 0) Application.ExitThread(); else Application.OpenForms[0].FormClosed += FormClosed; }