我已使用此代码从当前表单中打开一个新表单:
private void add_Click(object sender, EventArgs e)
{
add obj = new add();
obj.Show();
}
private void welcome_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
private void view_Click(object sender, EventArgs e)
{
view obj = new view();
obj.Show();
}
private void update_Click(object sender, EventArgs e)
{
update obj = new update();
obj.Show();
}
private void delete_Click(object sender, EventArgs e)
{
delete obj = new delete();
obj.Show();
}
如果我打开任何表格,那么之前的表格也照常运作。 我希望如果一个表单打开,那么所有其他以前的表单都会被关闭或禁用,听起来像是上一个按钮的点击事件发出的嘟嘟声。
答案 0 :(得分:4)
答案 1 :(得分:4)
为什么不尝试隐藏您的表单,然后在被调用的表单关闭时关闭它,以便它不会留在内存中。像这样。
假设您在Form1中单击一个按钮以显示Form2
Form2 frm2 = new Form2();
frm2.Activated += new EventHandler(frm2_Activated);
frm2.FormClosed += new FormClosedEventHandler(frm2_FormClosed);
frm2.Show();
现在,这个是当Form2显示或被激活时你隐藏了调用表单,在本例中是Form1
private void frm2_Activated(object sender, EventArgs e)
{
this.Hide(); // Hides Form1 but it is till in Memory
}
当这个案例中,当被调用的表格被封闭时,这个,它也将关闭Form1,以便它不会留在内存中。
private void frm2_FormClosed(object sender, FormClosedEventArgs e)
{
this.Close(); // Closes Form1 and remove this time from Memory
}
答案 2 :(得分:1)
尝试使用,这将关闭您当前的表格。
obj.ShowDialog();
this.close();