父窗体A   打开子窗体B
  
我的问题是:B有个【新建】按钮: 如何实现功能->  关闭本窗体 打开新的B窗体呢?

解决方案 »

  1.   

                Form2 f2 = new Form2();
                f2.Show();
                this.Close();
      

  2.   

    我有个主窗体,main,在main中用form1.ShowDialog() 打开form1,然后在form1中用form2.ShowDialog() 打开form2  的同时如何关闭 form1 呢?
    如何解决?
      

  3.   

        public class FormA : Form
        {
            public void ShowFormB()
            {
                FormB fb = new FormB(this);
                fb.ShowDialog();
            }
        }    public class FormB : Form
        {
            private FormA _parent = null;
            private bool _bIsNew = false;
            public FormB(FormA fa)
            {
                _parent = fa;
            }        private void New()
            {
                _bIsNew = true;
                this.Close();
            }        protected override void OnClosed(EventArgs e)
            {
                if (_parent != null && _bIsNew)
                {
                    _parent.ShowFormB();
                }
                base.OnClosed(e);
            }
        }如果Closed中 parent 已经赋值为空的话,试试Closing事件
      

  4.   

    点击b的按钮 发送消息给A 然后关闭自己 由A控制创建新窗口 
      

  5.   


    首先这个逻辑看起来就怪怪的,估计也是楼主自己想出来的需求。其次,你如果想实现这个效果,就在form2.ShowDialog()之前把form1藏起来,而不是关掉,因为关掉是根本不符合逻辑的。
      

  6.   

    因为ShowDialog方法必须有一个载体,当调用方关闭时,被调用方自然也会关闭。而你现在明显都是从主窗口调用ShowDialog方法,因此你必须在主窗口里填充代码,也就是在main里面判断form1的关闭后,是否留下了什么后续操作,然后给main执行。
      

  7.   

    还有一个方法,不用ShowDialog,而都用Show,Show方法不限制一个窗口,可以多个窗口同时弹出,这样就达到了你的目的。