使用this.hide()时关闭表单

时间:2013-12-18 00:55:08

标签: c# winforms show-hide

每当我使用this.Hide();表格关闭,不只是隐藏? 我打算用这个。隐藏();使我的表格最小化到系统托盘。

关闭表单..

 private void label14_Click(object sender, EventArgs e)
    {
        this.Hide();

    }

这个表单是第二个启动的表单,它从第一个表单调用,如下所示:

Form frm = new Main();
frm.ShowDialog();

我确实尝试过使用frm.Show();但随后程序再次终止.. 所以问题在于我猜的表单首次启动的方式?

编辑:我不得不改变表单的调用方式。 我必须在第一个表单上使用this.hide而不是this.close。

2 个答案:

答案 0 :(得分:2)

你必须这样做:

this.WindowState = FormWindowState.Minimized;

实际上当使用Hide()时,表单仍处于打开状态但隐藏在某处。所以在我看来,使用Hide()方法并再次创建一个新对象来显示表单不是正确的举动。要在它们之间切换,最好创建一个表单管理器类。

根据评论,这可能会解决问题(如果只是调用Show()方法无法应用):

 Form1 form = Application.OpenForms["Form1"] as Form1 ;
 if (form != null)
 {
     form.Show(); 
 }

答案 1 :(得分:0)

仅隐藏方法集可见性。 关闭也会处理内部对象!