form1保持打开状态并且form2(main)打开但是当我关闭第一个时,第二个也关闭
System.Threading.Thread.Sleep(5000);
this.Hide();
Main main = new Main();
main.Show();
Form1 f1 = new Form1();
f1.Close();
答案 0 :(得分:1)
当表单关闭时,将关闭对象中创建的所有资源并处理表单。您可以通过处理关闭事件并将 CancelEventArgs 的取消属性设置为参数来阻止在运行时关闭表单你的事件处理程序如果您要关闭的表单是应用程序的启动表单,则应用程序结束。
当您关闭父表单时,任何子表单都会死掉。您可以继承ApplicationContext并覆盖表单closing event以更改关闭表单的行为。您还可以更改Form的Parent和ParentForm属性以更改此行为。您可能还想考虑隐藏您的表单而不是关闭它。
答案 1 :(得分:0)
public static void Proc()
{
Form2 Child;
Application.Run(new Form2());
}
private void button1_Click(object sender, EventArgs e)
{
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(Proc));
t.Start();
this.Close();
}
答案 2 :(得分:0)
你应该使用ShowDialog,试试这个:
this.Hide();
Form2 form2 = new Form2();
form2.ShowDialog();