首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-05-08 
关于2个窗体的互操作有2个窗体HrManageForm和FatherForm在FatherForm上添加一个Button,实现在FatherForm上

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

热点排行