有两form
formA为主窗体并有一个btn
formB也有一个btn程序运行时直接关闭A程序会自动退出但是当点击A的btn隐蔽A并show()B,
再点击B的btn 隐蔽B show()A时现在关闭A程序不会自动退出
求解以及相应问题的延伸知识点代码: public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
this.Hide();
new Form2().Show();
}
} public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private void button2_Click(object sender, EventArgs e)
{
new Form1().Show();
this.Close(); // 已经释放掉B
this.Dispose();
}
}
formA为主窗体并有一个btn
formB也有一个btn程序运行时直接关闭A程序会自动退出但是当点击A的btn隐蔽A并show()B,
再点击B的btn 隐蔽B show()A时现在关闭A程序不会自动退出
求解以及相应问题的延伸知识点代码: public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
this.Hide();
new Form2().Show();
}
} public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private void button2_Click(object sender, EventArgs e)
{
new Form1().Show();
this.Close(); // 已经释放掉B
this.Dispose();
}
}
{
new Form1().Show();
this.Close(); // 已经释放掉B
this.Dispose();
}
} 不应该在使用new Form1().Show();
这样又新建了一个form1,最后却没有退出。
要怎么写属性
ParentForm
Parent的作用是什么
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}这个new Form1的对象,因此,当你关闭A2时,程序不会退出,只能将A1关闭才能退出整个应用程序的。如果你是想让B关闭时原来的A show出来,有但不限于下面两种办法
1. 使用事件public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
this.Hide();
Form2 b = new Form2();
b.Show();
b.FormClosed += new FormClosedEventHandler(b_FormClosed);
} void b_FormClosed(object sender, FormClosedEventArgs e)
{
this.Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private void button2_Click(object sender, EventArgs e)
{
this.Close(); // 已经释放掉B
this.Dispose();
}
}
2.设置Form1为Form2的构造函数参数public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
this.Hide();
Form2 b = new Form2(this);
b.Show();
}
} public partial class Form2 : Form
{
public Form2(Form1 parent)
{
InitializeComponent();
m_Parent = parent;
} private Form1 m_Parent; private void button2_Click(object sender, EventArgs e)
{
m_Parent.Show();
this.Close(); // 已经释放掉B
this.Dispose();
}
}