向tabcontrol中添加form

昨天花了一天的时间去找一个错误,关系是这样的,我添加一个tabcontrol就叫tc1好了,然后在tc1中再动态添加一个父窗体l叫form1,要把form1添加进tabcontrol就要先新建一个tabpage,然后把form1添加到tabpage的controls中,如tabpage.controls.add(form1);然后再将tabpage添加到tabcontrol中,接着要在form1中再添加一个包含叫tc2的tabcontrol,tc2中包含一个窗体form2,以下是包装的方法:

public TabPage Add(Form form)
        {
            form.Visible = true;
            form.TopLevel = false;
            form.Dock = DockStyle.Fill;
            form.FormBorderStyle = FormBorderStyle.None;
            TabPage page = new TabPage();
            page.Controls.Add(form);
            form.Show();
            this.Controls.Add(page);
            return page;
        }

开始添加不了一直报错,说是不能讲一个顶级窗体添加到其他控件中,原来是form的toplevel属性需要设置称false才能添加进tabcontrol中,接着继续。

又遇到一个问题,虽然窗体属性visiable设置为true,窗体还是没在tabcontrol中显示,原因是在把form添加进tabcontrol的tabpage后,需要手动调用show()方法才能将窗体显示在tabpage中。

接着又有问题,以上步骤都没问题,重点到了,我竟然在把tc2添加到tc1的时候疏忽了,没有把窗体的show()调用,导致后面的都不能显示出来。

原文地址:https://www.cnblogs.com/cellphoneyeah/p/5457490.html