C#关闭Form1打开Form2错误

时间:2013-12-28 04:16:55

标签: c# winforms

这个问题肯定是多余的,但我似乎已经尝试了一切!

好的我有form1和表单2.我想从form1上的buttonclick打开form2并将form1关闭。

我试过了:

Form2 newform = new Form2();
this.Close();
newform.Show();

我已尝试在buttonclick功能中的所有可能位置移动第二行。 但我的问题是,如果我使用“this.Close();”命令它关闭两个表单,如果我使用“this.Hide();”命令它使进程保持打开状态,我必须手动关闭它以再次调试。

(this.Close();“适用于任何其他形式(例如,form2 close => open form3 ETC)

有没有人知道任何其他方法让它关闭它但不关闭整个应用程序?

2 个答案:

答案 0 :(得分:2)

我尝试在ApplicationContext中使用Program.cs

看看下面的代码。 Form1Form2都包含Button

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main ()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        MyApplicationContext context = new MyApplicationContext();
        Application.Run(context);
    }

    public class MyApplicationContext : ApplicationContext
    {
        private Form1 form1 = new Form1();

        public MyApplicationContext ()
        {
            form1 = new Form1();
            form1.Show();
        }
    }
}

以下是Form1

的代码
    private void frm1Button1_Click (object sender, EventArgs e)
    {
        Form2 frm2 = new Form2();
        frm2.Show();
        this.Close();
    }

这是Form2

    private void frm2Button1_Click (object sender, EventArgs e)
    {
        Form1 frm1 = new Form1();
        frm1.Show();
        this.Close();
    }

答案 1 :(得分:0)

您面临的问题是您无法关闭应用程序的主要表单(不关闭整个应用程序)。你需要重新思考你的应用程序是如何组织的,并且可能隐藏主要表单而另一个在屏幕上或类似的东西。