Создать табличную панель с элементами управления

#c#

#c#

Вопрос:

У меня есть табличная панель с 2 строками. 1-я строка содержит только метки в каждом столбце, а 2-я содержит поле со списком в 1-м столбце и 4 текстовых поля во 2-м, 3-м, 4-м, 5-м столбцах и 2 кнопки в 2 последних столбцах. Я хочу, чтобы при нажатии кнопки Добавить она динамически создавала другую строку с той же архитектурой, что и 2-я. Я работаю в Windows form и я новист. Вы можете увидеть мою форму на изображении

1

код:

 private void button3_Click(object sender, EventArgs e)
        {
            ComboBox Cmb = new ComboBox();

            Cmb.Dock = System.Windows.Forms.DockStyle.Fill;
            Cmb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            Cmb.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
            Cmb.FormattingEnabled = true;
            //Cmb.Location = new System.Drawing.Point(4, 47);
            Cmb.Name = "comboBox1";
            Cmb.Size = new System.Drawing.Size(289, 24);
            //Cmb.TabIndex = 5;

            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));

            tableLayoutPanel1.Controls.Add(Cmb, 0, 2);
        }
  

Комментарии:

1. Не используйте LayoutPanel, у него очень ограниченные возможности. Вместо этого используйте главную панель, а затем добавьте подпанели (или элементы управления), чтобы у вас были лучшие варианты.

2. У меня есть хоть какая-то идея по поводу того, что вы предлагаете.

3. Вы пытаетесь имитировать представление в виде сетки. Почему бы не использовать DataGridView или соответствующий сторонний вид сетки. Существуют очень мощные продукты, в том числе сетки со сложными встроенными возможностями фильтрации.

4. Я сказал очень ясно: НЕ ИСПОЛЬЗУЙТЕ TableLayoutPanel!!! Вместо этого используйте панель. Панель макета не будет делать то, что вы хотите!!!

5. Спасибо, Оливье, за ваш вклад, но я думаю, что если возможно делать то, что я хочу, я предпочитаю это.