如何在 C# 中通过循环以编程方式创建 TabControl 并通过 TabPages 填充它?

How do I create TabControl and populate it by TabPages programmatically by loop in C#?

我是 C# 新手,我想通过循环创建分层 TabControl,其中 TabControl1 包含 TabPages A1 和 A2,然后在 A1 中创建 TabControl2,其中 TabControl2 包含 B1 和 B2,其中 1,2,3 表示循环指数。我希望像下图这样的东西。

sample picture 1

sample picture 1

private void button1_Click(object sender, EventArgs e)
    {
        int g = 0;
        int h = 4;

        while (g < h) 
        {
            g++;
            var parentTabControl = new TabControl { Dock = DockStyle.Fill };
            parentTabControl.TabPages.Add("A" + g.ToString());
            var page = parentTabControl.TabPages[0]; 
            var childTabControl = new TabControl { Dock = DockStyle.Fill };
            childTabControl.TabPages.Add("B" + g.ToString());
            page.Controls.Add(childTabControl);
            this.Controls.Add(parentTabControl);
        }

    }

但我得到了

Output

感谢您的帮助!

这里是你的函数

private void button1_Click(object sender, EventArgs e)
    {
        int g = 0;
        int h = 3;
        var parentTabControl = new TabControl { Dock = DockStyle.Fill };
        while (g < h) 
        {
            g++;
            parentTabControl.TabPages.Add("A" + g.ToString());
            var page = parentTabControl.TabPages[g-1]; 
            var childTabControl = new TabControl { Dock = DockStyle.Fill };
            childTabControl.TabPages.Add("B" + g.ToString());
            page.Controls.Add(childTabControl);
        }
        this.Controls.Add(parentTabControl);
    }

您需要从循环中取出 parent。 您创建了 4 个 parent 一个覆盖另一个。 如果你想要 3,你需要将 h 更改为 3。 也许将此循环更改为 for 循环会更好。