c#tabcontrols can';t在另一个选项卡页中添加面板

c#tabcontrols can';t在另一个选项卡页中添加面板,c#,winforms,tabcontrol,tabpage,C#,Winforms,Tabcontrol,Tabpage,我对VS C#中的窗口窗体有一些问题。我做了一个tabcontrol。这是和tabpage1,tabpage2的化合物 . 所有选项卡页将添加相同的面板。当我单击开关选项卡时,它应该显示面板。但这不是工作。它将显示第一个选项卡页,但当我切换选项卡时,它不会显示在其他选项卡页中 public partial class Form2 : Form { public Form2(.....){ ..........

我对VS C#中的窗口窗体有一些问题。我做了一个tabcontrol。这是和tabpage1,tabpage2的化合物 . 所有选项卡页将添加相同的面板。当我单击开关选项卡时,它应该显示面板。但这不是工作。它将显示第一个选项卡页,但当我切换选项卡时,它不会显示在其他选项卡页中

       public partial class Form2 : Form
        {
           public Form2(.....){
               ..........
              InitializeComponent();
                 ...........
               panelButton.Controls.Add(btnArr1[i]);
               tabControl1.TabPages[0].Controls.Add(panelButton); //It's work
               tabControl1.TabPages[1].Controls.Add(panelButton); //it's not show panel

               }

           }
在另一种方式中,我尝试在单击另一个选项卡页时创建事件。像这样的代码

      private void tabPage1_Click_1(object sender, EventArgs e)
       {
             tabControl1.TabPages[0].Controls.Add(panelButton); //It 's work
        }


怎么了

您正试图在不同选项卡中添加单个对象(panelButton)。您应该为每个选项卡创建两个panelButton,或者从当前选项卡中删除panelButton,然后再将其添加到所选选项卡中。

您不能将具有相同引用的控件添加到两个不同的选项卡页 解决方案是创建panelButton的新实例并将其添加到第二个选项卡, 不要忘记panelButton中的所有控件也必须是init

        private void tabPage2_Click_2(object sender, EventArgs e)
       {
            tabControl1.TabPages[1].Controls.Add(panelButton); //It is not show panel.
        }