如何在子窗体里给父窗体的panel容器里添加一个其他的窗体
                                           Form1 fom = new Form1();//父窗体
                                    
                                       login l = new login();//当前操作窗体
                                       Ad gg = new Ad();//需要添加的窗体;
                                       fom.panel3.Controls.Remove(l);
                                       fom.panel3.Controls.Add(gg);
                                    
                                       gg.TopLevel = false;
                                       gg.Show();
我是这么写的
怎么不反应我的目的就是在登陆窗体登陆成功后
覆盖式的跳转到gg窗体请高手帮忙
高分送上!!

解决方案 »

  1.   

    在 Panel 里加窗体....不太可能吧~~~ 要不你把窗体做成 自定义控件 ?
    再有你为什么要这样覆盖式的跳转呢? 下面这样不行吗?
    login l=new login()
    if(l.showdialog()==DialogResult.OK)
    {
      Ad gg=new Ad();
      gg.Show();
    }
      

  2.   

    是需要覆盖的
    panel里是能存放窗体的简单的另打开窗体我知道关键是覆盖式的有点搞不清楚了!
      

  3.   

    给你写了个例子,参考一下吧,假定Form2是主窗体,上面有一个button1和panel1,按panel1弹出Form3,Form3上有个button1,按button1,在Form2的panel1中加载Form1:
    Form2的代码:    public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)
            {
                Form3 fm3 = new Form3(this);
                fm3.Show();
            }        public void LoadForm(Form f)
            {
                this.panel1.Controls.Clear();
                f.TopLevel = false;
                this.panel1.Controls.Add(f);
            }
        }
    Form3的代码:    public partial class Form3 : Form
        {
            Form2 FM2;
            public Form3(Form2 fm2)
            {
                InitializeComponent();
                this.FM2 = fm2;
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form1 fm1 = new Form1();
                FM2.LoadForm(fm1);
                fm1.Show();
            }
        }
      

  4.   

         Form1 fom = new Form1();//父窗体 
                                        
                                          login l = new login();//当前操作窗体 
                                          Ad gg = new Ad();//需要添加的窗体; 
                                          fom.panel3.Controls.Remove(l); 
                                          fom.panel3.Controls.Add(gg); 
                                        
                                          gg.TopLevel = false;                                       gg.Show(); 
    gg.TopLevel = false;  这个放 fom.panel3.Controls.Add(gg); 前面
      

  5.   

    就是我按照你的方法测试了下
    登陆后还是只停留在登陆界面
    没有发生跳转发生跳转部分的代码我贴出来
        ztdisplay.Text += "\x20 验证用户状态成功 \r\n\n";
                                        
                                        Application.DoEvents();
                                        uname = this.username.Text.Trim().ToString();
                                        uid = ConnAndopr.MemberLogin(this.username.Text.Trim().ToString(), ConnAndopr.EncryptPassword(this.password.Text.Trim().ToString(), "SHA1"));
                                     
                                        
                                       
                                      
                                        MessageBox.Show("用户验证成功,点击确定将跳转");                                                                      Ad gg = new Ad();                                    fm1.LoadForm(gg);
                                        gg.Show();
      

  6.   

    试试将两个窗体都放入同一个Panel中,一个隐藏,一个显示,如 login.Hide(); oForm.Active();
      

  7.   

                                              Form1 fom = new Form1();//父窗体 
                                        
                                          login l = new login();//当前操作窗体 
                                          Ad gg = new Ad();//需要添加的窗体; 
                                          fom.panel3.Controls.Remove(l); 
                                          fom.panel3.Controls.Add(gg); 
                                        
                                          gg.TopLevel = false; 
                                          gg.Show(); 
    ///把gg.TopLevel=false移到添加之前,