【问题标题】:c# tabcontrols can't add panel in another tabpagec# tabcontrols不能在另一个标签页中添加面板
【发布时间】:2026-01-18 15:20:04
【问题描述】:

我对 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
        }

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

怎么了?

【问题讨论】:

    标签: c# winforms tabcontrol tabpage


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】: