向动态创建的选项卡添加列表框

本文关键字:添加 列表 选项 动态 创建 | 更新日期: 2023-09-27 18:16:16

我正试图以编程方式将列表框添加到选项卡控件内动态创建的选项卡页面。我不明白问题在哪里,因为我在编译时没有给我任何错误。我在if语句if (c is TabPage)上使用了断点,它正确地显示了创建的选项卡页。

    public void createControls()
    {
        TabControl tabcontrol = new TabControl();
        panel1.Controls.Add(tabcontrol);
        tabcontrol.Dock = DockStyle.Fill;
        int n = 1;
        do
        {
            tabcontrol.Controls.Add(new TabPage() { Name = "Property #" + n + "", Text = "Property #" + n + "" });
            n++;
        } while (n == pnum);
        foreach (Control c in panel1.Controls)
        {
            if (c is TabPage)
            {
                ListBox list = new ListBox();
                list.Items.AddRange(new object[] {
                "Id",
                "Name",
                "Entity"});
                list.Location = new System.Drawing.Point(20, 38);
                list.Name = "listBox1";
                list.ScrollAlwaysVisible = true;
                list.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
                list.Size = new System.Drawing.Size(134, 147);
                c.Controls.Add(list);
            }
        }
    }

向动态创建的选项卡添加列表框

您需要确保您访问了直接容器的控件。

foreach (Control c in panel1.Controls)

应该是

foreach (Control c in tabcontrol.Controls)