读书人

关于2个窗体的互操作,该如何处理

发布时间: 2012-05-08 22:09:41 作者: rapoo

关于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

读书人网 >C#

热点推荐