有三个窗口:采购进货单FrmCGJH  里面有button(新商品添加) BtnADD,单击FrmCGJH.BtnAdd弹出第二个窗口增加商品窗口:FrmAdd,FrmAdd也有一个Button(保存)BtnOK,单击BtnOK会将提交的商品信息保存到数据库,同时又会弹出第三个窗口商品信息窗口FrmInfomation,一个交互接口,用来确定用户输入进货商品数量,FrmInformation上面也有一个按钮BtnSure,将商品的信息及用户输入的信息追加到FrmCGJH里面的DataGridView中,请问要在第三个窗口FrmInformation提交的时候,如何切换到FrmCGJH窗口,而不是弹出一个FrmCGJh实例的新窗口,并且关闭FrmAdd,FrmInformation.
            

解决方案 »

  1.   

    参考如下:
    FormCollection forms = Application.OpenForms;
                Form MDIForm = new Form();
                bool isOpen = false;
                
                // 在打开的窗口中找到MDI(主)窗体
                foreach (Form form in forms)
                {
                    // 如果已经打开(运行),则不再打开
                    if (form is PrdForm)
                    {
                        isOpen = true;
                        form.Activate();  // 激活为当前活动窗口.
                    }                if (form is MainForm)
                    {
                        MDIForm = form;
                    }
                }            // 如果没有打开,则打开. 
                if (isOpen == false)
                {
                    PrdForm prdForm = new PrdForm();
                    prdForm.MdiParent = MDIForm;
                    prdForm.Width = MDIForm.Width;
                    prdForm.Height = MDIForm.Height;
                    prdForm.Show();
                }
      

  2.   

    可以用委托或者传递FrmCGJH楼主请看这里,  
      在.net中轻松掌握Windows窗体间的数据交互  
      http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx  
      //窗体的参数传递  
      http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx#sec5