有两个Window窗口,通过一个窗口的Button打开第二个窗口后,,怎样通过第二个窗口关闭第一个窗口???先谢了!

解决方案 »

  1.   


    /*
      由于Form1中打开Form2,前者是主窗体,故可在主窗体中关闭子窗体;
      反过来做的话,也许通过WIN API获取窗口句柄可以做到;
      只示例第一种情况
    */
    //Form1:
    private Form2 f2;
    protected void button1_Click(object sender,EventArgs e)
    {
      Form2 f = new Form2();
      f2 = f;
      f.Show();
    }protected void button2_Click(object sender,EventArgs e)
    {
      if(f2 != null)
      {
        f2.Close();
      }
    }//Form2
      

  2.   

    如果第一窗体是主窗体吧,关了就会结束程序?
    一般是登录窗隐藏,从窗体通过
    Application.Exit();
    关应用程序。
      

  3.   

    你的思路不正确。
    你是想先Show form1, 关闭form1后再show form2。
    你可以在主程序的Program类中来做这两件事;show forme1的时候用 former.ShowDialog();
    .
      

  4.   

    第一种情况不是问题,我就是问第二种情况啊。Form2怎样反过来关闭Form1啊??用API句柄可以吗??具体怎样实现啊,本人愚昧,望诸位赐教!
      

  5.   

    修改Form1的关闭函数 
    protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
              //仅释放非托管资源            base.Dispose(false);
                   }列子如下:
    Form2 mm = new Form2(this);
                mm.Visible = true; public Form2(Form1 fff)
            {
                InitializeComponent();
                fff.Dispose();
            }