Проблема с размерами столбцов при использовании TableLayoutPanel - PullRequest
1 голос
/ 29 марта 2012

У меня есть следующий код:

        var tlp = new TableLayoutPanel
                      {
                          Location = new Point(0, 0),
                          Name = "TableLayoutPanel1",
                          Dock = DockStyle.Fill,
                          BackColor = Color.White,
                          TabIndex = 0
                      };

        Controls.Add(tlp);

        tlp.RowStyles.Add(new RowStyle(SizeType.Absolute, 14f));
        tlp.RowStyles.Add(new RowStyle(SizeType.Absolute, 18f));
        tlp.RowStyles.Add(new RowStyle(SizeType.Absolute, 12f));
        tlp.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100f));
        tlp.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute,  50f));

        var label3 = new Label
        {
            Font = new Font("Tahoma", 8, FontStyle.Regular),
            Text = Description,
            AutoSize = false,
            Width=50,
            ForeColor = Color.Black,
            TextAlign = ContentAlignment.TopLeft
        };
        tlp.Controls.Add(label3, 1, 2);

Моя проблема в том, что при запуске приложения ничего не отображается. Если я изменю последнюю строку для отображения в первом столбце, примерно так:

        tlp.Controls.Add(label3, 0, 2);

Тогда в первом столбце все хорошо. Кроме того, если я изменю свое определение ColumnStyle на SizeType.Percentage вместо Absolute, это тоже хорошо работает, но я не хочу указывать процент, я хочу фиксированный столбец в 100 пикселей слева и фиксированный столбец в 50 пикселей справа.

Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Вы также должны установить свойства RowCount и ColumnCount.Странно, я знаю.

Итак:

tlp.RowCount = 3;
tlp.ColumnCount = 2;
0 голосов
/ 16 мая 2016

Мне потребовалось много времени, чтобы понять это:

добавить Columnstyles и Rowstyles недостаточно, вам также необходимо установить ColumnCount и RowCount, как описано выше.Но ...

Установка RowCount и ColumnCount также недостаточна!Вам также нужно добавить Columnstyles и Rowstyles.

Думаю, я наконец-то понял этот компонент ...

Bas

...