#c#
#c#
Вопрос:
У меня есть табличная панель с 2 строками. 1-я строка содержит только метки в каждом столбце, а 2-я содержит поле со списком в 1-м столбце и 4 текстовых поля во 2-м, 3-м, 4-м, 5-м столбцах и 2 кнопки в 2 последних столбцах. Я хочу, чтобы при нажатии кнопки Добавить она динамически создавала другую строку с той же архитектурой, что и 2-я. Я работаю в Windows form и я новист. Вы можете увидеть мою форму на изображении
код:
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. Спасибо, Оливье, за ваш вклад, но я думаю, что если возможно делать то, что я хочу, я предпочитаю это.