Вставка Combobox в групповой ящик, который находится внутри контейнера - PullRequest
0 голосов
/ 15 августа 2011

Я создал панель разметки в режиме конструктора и хочу разместить в ней динамическое количество групповых блоков, каждый из которых имеет ComboBox внутри. Последняя строка (с косой чертой над и под ней) - это та, которая беспокоит меня; Я действительно не знаю, почему это не работает.

PS: Когда я рисую групповые блоки в режиме конструктора, я могу разместить внутри комбинированные списки!

            List<GroupBox> GroupBoxes = new List<GroupBox>();
            List <ComboBox> Caja =new List<ComboBox>();
            for (int i = 0; i < Campos.Count; i++)
            {
                GroupBoxes.Add(new GroupBox());
                Caja.Add(new ComboBox());
            }
            for (int i = 0; i< Campos.Count; i++)
            {
                //Agregamos la caja...

                GroupBoxes[i].Location = new System.Drawing.Point(51, 21);
                GroupBoxes[i].Size = new System.Drawing.Size(203, 56);
                GroupBoxes[i].Text = "haha";
                GroupBoxes[i].Name ="GroupBox"+i.ToString();
                this.flowLayoutPanel1.Controls.Add(GroupBoxes[i]);


                Caja[i].Location = new System.Drawing.Point(51, 21);
                Caja[i].Name = "comboBox"+i.ToString();
                Caja[i].Size = new System.Drawing.Size(121, 21);
                Caja[i].DropDownStyle = ComboBoxStyle.DropDownList;

                /////////////////
                this.GroupBoxes[i].Controls.Add(Caja[i]);
                /////////////////
            }
        }

1 Ответ

1 голос
/ 15 августа 2011

Ваш код должен быть примерно таким:

        List<GroupBox> GroupBoxes = new List<GroupBox>();
        List <ComboBox> Caja =new List<ComboBox>();
        for (int i = 0; i < Campos.Count; i++)
        {
            ComboBox cb = new ComboBox();
            cb.Location = new System.Drawing.Point(51, 21);
            cb.Name = "comboBox"+i.ToString();
            cb.Size = new System.Drawing.Size(121, 21);
            cb.DropDownStyle = ComboBoxStyle.DropDownList;
            Caja.Add(cb);
            GroupBox gb = new GroupBox();
            gb.Location = new System.Drawing.Point(51, 21);
            gb.Size = new System.Drawing.Size(203, 56);
            gb.Text = "haha";
            gb.Name ="GroupBox"+i.ToString();
            gb.Controls.Add(cb);
            GroupBoxes.Add(gb);
            this.flowLayoutPanel1.Controls.Add(gb);
        }
    }

или просто поместите следующую строку

this.flowLayoutPanel1.Controls.Add(GroupBoxes[i]);

в конце после

/////////////////
this.GroupBoxes[i].Controls.Add(Caja[i]);
/////////////////
...