tabControl1.Controls.Add(this.tabPage1);
运行第一遍时没有问题。
运行第二遍时,tabControl1中有两个tabPage1,但是两个tabPage1中的DataGridView和Button等所有控件都看不见了。
tabControl1.Controls.Remove所有tabPage后再运行tabControl1.Controls.Add(this.tabPage1);一次可以正常显示。二次又没了。
就是tabControl1包含多个tabPage1时不能显示tabPage1其中的控件了。
哪位高手给我指点一下,不胜感激。

解决方案 »

  1.   

    因为重复,所以tabpage里面的数据产生了丢失.
    需要解决这种情况,在添加tabpage控件时就一定要避免tabpage重复的问题,因为重复他自身就会产生混淆
    从而丢失到其中的控件,所以我们在插入之前一般对现在的tagpage页首先进行判定,看看是否我们现在需要插入
    的页已经存在,如果存在也不插入.方法LZ可以参考下foreach (TabPage oPage in this.ChatContent.TabPages)
    {
        if (oPage.Text == 我们需要添加的tabpage标签.text)//通过遍历tabpages从而判定tabpage页是否已经存在
        {
    //         currentPage = oPage;如果存在则把已经存在的tabpage定位于当前tabpage
             break;
         }
    }
      

  2.   

    看来是不能添加重复的tabpage了。
    有没有什么办法,添加新的tabpage而且新tabpage的功能和原来的一样啊?
    就是把原tabpage里面的控件和控件的方法,添加到新的tabpage呢?
    4楼有没有这样的办法啊
      

  3.   

    这个功能不能实现,因为tabpage中控件的名字是不能重复的。可以这样做1 TabPage myTabPage = new TabPage("haha123");
    2 调用一个函数addcontrols(myTabPage),函数的功能是往tabpage中添加控件
    3 tabControl1.TabPages.Add(myTabPage);
      

  4.   

    我用一个变相的方法实现了不同TabPage包含相同控件;
    用一个panel托住TabPage1里的所有控件,选中TabPage2时,TabPage1.Controls.Remove(panel);再TabPage2.Controls.Add(panel);
    大家帮我看看 还有没有更好的办法。
      

  5.   

    你建个窗体
    然后在2个TabPage调用
      

  6.   

    8楼说的是不是和7楼一样啊!
    8楼说窗体,7楼是panel