这个问题肯定是多余的,但我似乎已经尝试了一切!
好的我有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)
有没有人知道任何其他方法让它关闭它但不关闭整个应用程序?
答案 0 :(得分:2)
我尝试在ApplicationContext
中使用Program.cs
。
看看下面的代码。 Form1
和Form2
都包含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)
您面临的问题是您无法关闭应用程序的主要表单(不关闭整个应用程序)。你需要重新思考你的应用程序是如何组织的,并且可能隐藏主要表单而另一个在屏幕上或类似的东西。