C# 使用TableLayoutPanel时出现列大小问题

C# 使用TableLayoutPanel时出现列大小问题,c#,winforms,tablelayoutpanel,C#,Winforms,Tablelayoutpanel,我有以下代码: var tlp = new TableLayoutPanel { Location = new Point(0, 0), Name = "TableLayoutPanel1", Dock = DockStyle.Fill,

我有以下代码:

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


有人能给我指出正确的方向吗?

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

因此:


我花了很长时间才弄明白:

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

设置RowCount和ColumnCount也不够!您还需要添加列样式和行样式

我想我终于找到了这个部件


哇,那是我的问题。真不敢相信你必须设置它,因为它应该能够通过我实际添加的行或列的数量来计算出来。是的,你会认为只要添加到集合中就可以了。哦,好吧。
tlp.RowCount = 3;
tlp.ColumnCount = 2;