c#中winform窗口的隐藏与显示

时间:2023-03-08 15:55:44

  最近在做一个C# 的winform客户端程序,要实现在打开新的窗口时将原来打开的窗口关闭,但是想在关闭新打开的窗口是将原来的那个窗口再次打开,在网上查找各种资料,找了很多代码,都是通过窗口.Hide()和窗口.Show()方法实现的,但都没有实现我想要的功能,关闭新窗口打开原来的窗口时发现原来的窗口里面的所有数据都没有了,而且打开新窗口时原来的窗口不会显示出来。

通过网上查找资料和认真研读C# winform 方面相关的书籍发现,窗体有Visible属性,设置为true窗体将显示出来,现将具体代码粘贴如下:

打开新的窗体Form2时隐藏原来的窗体Form1

  Form2 fm = new Form2(this);

  this.Hide();//隐藏现在这个窗口
  fm.Show() ;//新窗口显现

关闭新的窗体Form2时显示原来的窗体Form1,

  public partial class Form2 : Form
  {
    private Form1 returnForm1 = null;
    public Form2(Form1 F1)
    {
      InitializeComponent();
      // 接受Form1对象
      this.returnForm1 = F1;
    }

  }

为Form2添加Form2_FormClosing事件

  private void Form2_FormClosing(object sender, FormClosingEventArgs e)
  {
    //恢复Form1
    this.returnForm1.Visible = true;
  }