Извините, но что плохого в том, что для столбцов установлено значение Autosize?Это то, что делает TableLayoutPanel, размер столбцов в соответствии с элементами управления внутри него.Расширение таблицы и наличие полосы прокрутки потребует от вас установить для свойства Autosize таблиц значение true, а затем расположить TableLayoutPanel на другой панели с включенными полосами прокрутки.Но размер столбца должен работать из коробки, если только я неправильно понимаю ваши требования.
Просто чтобы убедиться, что вы переходите к свойству столбцов и устанавливаете SizeType каждого столбца на AutoSize, верно?Не только свойство AutoSize самой таблицы?
это то, что вы хотите?
-Почта код:
Спасибо закод.Я бы посоветовал вам использовать конструктор, чтобы сделать многое из этого.По крайней мере, чтобы настроить столбцы, установить для них автоматический размер и добавить метки заголовков.
Возможно, вы также захотите проверить элемент управления Datagrid и привязать его к списку местоположений.
Дляхотя этот метод работает:
1) причина, по которой ваши столбцы выглядят одинакового размера, заключается в том, что используемые вами заголовки заголовков не меняются автоматически.Они все х пикселей в ширину, и это растягивает столбцы.Сделайте это:
Label lab = new Label();
lab.AutoSize = true;
lab.Text = "Location";
tableLayoutPanel1.Controls.Add(lab, 0, 0);
Вам также необходимо установить для свойства AutoSize значение true в элементе управления CheckBox и любых других метках, добавляемых в качестве содержимого.
2) Установка RowCount и ColumnCountне повлияет на коллекцию RowStyles или ColumnStyles.У вас есть 7 столбцов, но только 2 стиля столбцов.Попробуйте:
tableLayoutPanel1.ColumnStyles.Clear();
for (int i = 0; i < tableLayoutPanel1.ColumnCount; i++)
{
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
}
tableLayoutPanel1.RowStyles.Clear();
for (int i = 0; i < tableLayoutPanel1.RowCount; i++)
{
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
}
Единственное, на что следует обратить внимание, это то, что некоторые элементы управления будут смещены в строках (например, метки выглядят слишком высокими).Чтобы исправить это, установите свойство Margin, обычно равное 3,6,3,0, чтобы выровнять их по текстовым полям, флажкам и т. Д.