关于2个窗体的互操作
有2个窗体HrManageForm和FatherForm
在FatherForm上添加一个Button,实现在FatherForm上点击button后显示HrHanagerForm并且隐藏FatherForm
在HrHanagerForm上点击"X"关闭本窗体后显示FatherForm窗体
现在我是这么做的:
在FatherForm上
- C# code
//人力资源管理系统button private void button2_Click(object sender, EventArgs e) { HrManageForm myHrForm = new HrManageForm(); myHrForm.Show(); this.Visible = false; }
在HrHanagerForm上
- C# code
//关闭人力资源管理窗口之后显示企业管理窗口 private void HrManageForm_FormClosed(object sender, FormClosedEventArgs e) { FatherForm fatherform = new FatherForm(); fatherform.Show(); }
问题是:
程序运行后,先点击Button,显示HrManageForm窗体,然后关闭HrManageForm窗体会自动显示FatherForm窗体,
再关闭FatherForm窗体,这时没有窗体存在了,但是程序却还在继续运行,停止调试才能关闭程序...
请问这是怎么回事,有什么解决的办法,请大虾详细说说,谢谢!
[解决办法]
this.Visible = false;
这只是 不可见,不是关闭。
[解决办法]
事实上,你应该找到之前的FatherForm实例。如果每次都在formclosing事件里面new一个新的FatherForm的话,第一次的那个FatherForm一直存在,只是被隐藏起来了。尝试下面方法
- C# code
public Form1() { InitializeComponent(); f1 = this; } public static Form1 f1; private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); this.Visible = false; }
[解决办法]
private void button2_Click(object sender, EventArgs e)
{
this.Visible = false;
HrManageForm myHrForm = new HrManageForm();
myHrFormthis.ShowDialog();
this.Visible = true;
}
在HrHanagerForm上
C# code
//关闭人力资源管理窗口之后显示企业管理窗口
private void HrManageForm_FormClosed(object sender, FormClosedEventArgs e)
{
}
[解决办法]
http://blog.csdn.net/wuyazhe/article/details/5642431