点击from1的butten1,在from2上创建一个tabControl1控件,再创建n个页,每页上创建textbox或者lable等控件,怎么实现?在第一次点击创建完成后通过点击from2上的butten1返回from1,但是不关闭from1,只隐藏,在下一次点击form1的butten1的时候显示出来from2以前添加过的控件仍然有,没添加过的控件添加进去,怎么实现?虽然不难,但是有些麻烦,请教了。有代码最好。谢谢。

解决方案 »

  1.   

    可以在Form1里面创建一个Form2实例添加控件也很容易,new了之后,调用form2的Controls.Add方法加进去至于第二次的时候不创建控件,可以判断一下form2.Controls的数量,如果是0的话就表示没创建
      

  2.   

    如果Form2是在Form1中用代码创建的,楼上的方法就可以了
    如果Form2是在可视编程时创建的,可将Form2实例设成全局的,加Form2引用就可以创建控件了
      

  3.   

    能给出点代码么,我是这样写的,但是全是错
     System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Work));
                        Work work = new Work();
                        this.tabControl1 = new System.Windows.Forms.TabControl();
                        
                        this.tabPage1 = new System.Windows.Forms.TabPage();
                        
                        this.SuspendLayout();
                        // 
                        // tabControl1
                        // 
                        this.tabControl1.Controls.Add(this.tabPage1);
                        this.tabControl1.Location = new System.Drawing.Point(0, 0);
                        this.tabControl1.Name = "tabControl1";
                        this.tabControl1.SelectedIndex = 0;
                        this.tabControl1.Size = new System.Drawing.Size(238, 269);
                        this.tabControl1.TabIndex = 0;
                        // 
                        // tabPage1
                        // 
                        this.tabPage1.Controls.Add(this.textBox12);
                       
                        this.tabPage1.Location = new System.Drawing.Point(4, 25);
                        this.tabPage1.Name = "tabPage1";
                        this.tabPage1.Size = new System.Drawing.Size(230, 240);
                        this.tabPage1.Text = "测试";
      

  4.   

      private void button3_Click(object sender, EventArgs e)
            {
                TabControl dd = new TabControl();
                dd.Name = "ss";
                Form2 frm = new Form2();
                frm.Controls.Add(dd);
                frm.ShowDialog();        }
      

  5.   

      private void button3_Click(object sender, EventArgs e)
            {
                TabControl dd = new TabControl();
                dd.Name = "ss";
                TabPage ss = new TabPage();
                TextBox tx = new TextBox();
                ss.Controls.Add(tx);
                dd.Controls.Add(ss);
                Form2 frm = new Form2();
                frm.Controls.Add(dd);
                frm.ShowDialog();        }
      

  6.   

    前半段代码如下private void button1_Click(object sender, EventArgs e)
            {            TabControl tb = new TabControl();
                TabPage tp1 = new TabPage();
                TabPage tp2 = new TabPage();
                Button btn1 = new Button();
                Button btn2 = new Button();
                btn1.Text = "Button1";
                btn2.Text = "Button2";
                Form2 f2 = new Form2();
                tp1.Controls.Add(btn1);
                tp2.Controls.Add(btn2);
                tb.Controls.Add(tp1);
                tb.Controls.Add(tp2);
                f2.Controls.Add(tb);
                f2.Show();
            }
    后半段听不懂你的意思。大概是你想两窗体互相操作吧?这样的话,在FROM1的BUTTON1事件里把this赋给From2的一个变量。
    比如你可以f2.f1 = this;然后你就可以在From2里直接f1.show(),就可以显示From1了。
    当然这样的话,你先得在FROM1里定义From1 f1;