Проблема TableLayout с размером ячейки (C #) - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть элемент управления TableLayoutPanel, который изначально пуст - 0 строк и 0 столбцов. Я хочу сформировать его и заполнить его некоторыми элементами управления из кода, и это работает, но у меня есть некоторая неприятная проблема - когда я добавляю элементы управления в TableLayoutPanel с использованием кода, столбцы и строки имеют разный размер (хотя все добавленные элементы управления являются того же размера, и пристыкован для заполнения ячеек в контейнере TableLayoutPanel). В основном первый ряд занимает около 50% высоты, а два следующих ряда занимают 25% каждый.

код, который я пробовал, выглядит следующим образом:

//Reseting table:
tableLayoutPanel1.RowCount = 1;
tableLayoutPanel1.ColumnCount = 1;

//Size of one side of matrix:
int oneSide=(int)Math.Sqrt(mat.Matrix.Length);

tableLayoutPanel1.RowCount = oneSide;
tableLayoutPanel1.ColumnCount = oneSide;

tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.ColumnStyles.Clear();
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100 / oneSide));
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100 / oneSide));

//Matrix is an array of controls, mat is some class
tableLayoutPanel1.Controls.AddRange(mat.Matrix);

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

1 Ответ

1 голос
/ 08 апреля 2011

Делать это вручную неприятно, пусть генератор кода сделает всю работу за вас. Создайте фиктивную форму, добавьте TLP. Получите это так, как вы хотите с дизайнером.

Затем найдите форму в окне обозревателя решений и откройте узел слева от нее. Дважды щелкните файл Designer.cs. Найдите код в методе InitializeComponent и скопируйте / вставьте его.

...