Добавление динамических элементов управления в TableLayoutPanel в форме Windows .NET

Я хочу динамически добавлять элементы управления на панель при нажатии кнопки. Но я хочу упорядочить позиции. Например, я хочу иметь два текстовых поля бок о бок равной ширины, занимая равное пространство панели. См. Картинку ниже.

введите описание изображения здесь

Как вы можете видеть на картинке выше, при нажатии кнопки будут добавлены элементы управления. Но у меня проблема с использованием TableLayoutPanel. Смотрите мой код ниже.

private void btnAddOption_Click(object sender, EventArgs e)
        {
            TextBox tb1 = new TextBox();
            tb1.Text = "Cell 1";
            TextBox tb2 = new TextBox();
            tb2.Text = "Cell 2";


            TableLayoutPanel rowLayout = new TableLayoutPanel();
            rowLayout.ColumnCount = 2;
            rowLayout.RowCount = 1;

            //want to add tb1 to cell 1 and tb2 to cell 2 of TableLayoutPanel         

            panelFoodOptions.Controls.Add(rowLayout);

        }

Как вы можете видеть в моем коде, я прокомментировал то, что хочу сделать. Это мои проблемы.

Я пробовал это

rowLayout.Controls.Add(tb1);
rowLayout.Controls.Add(tb2);

Таким образом, указанный выше способ не работает. Итак, я попробовал получить ячейку макета. Но у меня проблема. См. Картинку ниже.

введите описание изображения здесь

Как видно на скриншоте, мне нужно передать дочерний элемент управления, чтобы получить ячейку. Но я даже не добавил элемент управления в ячейку. Я хочу добавить элемент управления в ячейку, получив соответствующую позицию. Как я могу добавить элемент управления в нужную ячейку?


person Wai Yan Hein    schedule 16.03.2017    source источник
comment


Ответы (1)


Вам просто нужно использовать Controls.Add метод и укажите столбец и строку для элемента управления:

rowLayout.Controls.Add(tb1, 0, 0);
rowLayout.Controls.Add(tb2, 0, 1);
person Selman Genç    schedule 16.03.2017
comment
@WaiYanHein, добро пожаловать, в следующий раз не забудьте проверить перегрузки для метода, который вы используете :) - person Selman Genç; 16.03.2017