1

我有以下代码:

        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 像素的固定列。

有人可以指出我正确的方向吗?

4

2 回答 2

2

您还必须设置 RowCount 和 ColumnCount 属性。奇怪,我知道。

所以:

tlp.RowCount = 3;
tlp.ColumnCount = 2;
于 2012-03-29T03:13:50.553 回答
0

我花了很长时间才弄清楚这一点:

添加 Columnstyles 和 Rowstyles 是不够的,您还必须设置 ColumnCount 和 RowCount,如上所述。但...

设置 RowCount 和 ColumnCount 也是不够的!您还需要添加 Columnstyles 和 Rowstyles。

我想我终于弄清楚了这个组件...

巴斯

于 2016-05-16T18:14:57.210 回答