this.Close();
没有问题啊!
另外,有些开发工具支持直接Show一个窗体,只不过是它在后台替你创建了而已,自己创建很直观啊。如果你非要直接打开,也可以自己上来先把窗体都建立了,然后隐藏起来,需要的时候在打开

解决方案 »

  1.   

    可以用this.Close();关闭原窗口
    b窗口打开时必需要new.
      

  2.   

    如果只是不想显示可以this.Hide();
    否则就得this.Close();
      

  3.   

    如果下面的代码写在菜单里,每点一次菜单就打开一个窗体,点多次就打开多个窗体。怎么解决呢?
    b open_new = new b();
    open_new.show();
      

  4.   

    我测试的结果是这样的:代码Form2 b = new Form2();
    b.Show();
    //this.Hide();
                                this.Close();
    如果是关闭,那么Form1是Form2是父窗口,父窗口关闭,子窗口也会关闭;如果是Hide,父窗口消失,子窗口存在,但这样也会出现一个问题——关闭子窗口时,如何关闭进程?
      

  5.   

    还有我怎样在一个按钮的单击事件中关闭另一个窗体呢?!你的这个问题可以这么解决
    private Form2 b;
    private void button1_Click(object sender, System.EventArgs e)
    {
    b = new Form2();
    b.Show();
    //this.Hide();
    } private void button2_Click(object sender, System.EventArgs e)
    {
    b.Close();
    }