根目录
form1.cs
sz(文件夹)
   -default.cs
   -sk.cs
============
以上是文件分布列表。目前在form1.cs中放了一个名为panel1的Panel,在form1加载时用下面的代码填充sz/default.cs窗体this.panel1.Controls.Clear();
            sz.Default def = new sz.Default();
            def.Dock = System.Windows.Forms.DockStyle.Fill;
            def.TopLevel = false;
            def.FormBorderStyle = FormBorderStyle.None;
            this.panel1.Controls.Add(def);
            def.Show();这正常显示。
现在的情况是在default.cs窗体中放了一个按钮,点击该按钮时把default.cs窗体清空,找成sk.cs,但要让sk.cs显示在form1.cs中的panel1中。(就类似于b/s中的页面链接一样)
用下面的代码无法调出sk.cs窗体。也不会报错        private void button1_Click(object sender, EventArgs e)
        {
         Form1 f = new Form1();
            Panel panel1 = ((Panel)f.Controls.Find("panel1", false)[0]);
            panel1.Controls.Clear();
            sk_wel = new sk();
            _wel.Dock = System.Windows.Forms.DockStyle.Fill;
            _wel.TopLevel = false;
            _wel.FormBorderStyle = FormBorderStyle.None;
            panel1.Controls.Add(_wel);
            _wel.Show();
         }麻烦大家给看看要怎么修改。谢谢已经将form1.designer.cs中的panel1改成了public还是不行。

解决方案 »

  1.   

    或者是两个窗体间要怎么跳转,不要show()弹出新窗口的。
      

  2.   


    可以 在一个窗体中new 一个另一个窗体对象,然后显示出来
      

  3.   


     panel1.Controls.Add(_wel);
                _wel.Show();换下位置。先显示,后增加到 Controls
      

  4.   

            private void button1_Click(object sender, EventArgs e)
            {
             Form1 f = this.ParentForm as Form1;
                f.panel1.Controls.Clear();
                sk_wel = new sk();
                _wel.Dock = System.Windows.Forms.DockStyle.Fill;
                _wel.TopLevel = false;
                _wel.FormBorderStyle = FormBorderStyle.None;
                f.panel1.Controls.Add(_wel);
                _wel.Show();
             }