我有以下代码:
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像素的固定列。
有人能指出我正确的方向吗?
答案 0 :(得分:2)
您还必须设置RowCount和ColumnCount属性。奇怪,我知道。
所以:
tlp.RowCount = 3;
tlp.ColumnCount = 2;
答案 1 :(得分:0)
我花了很长时间才弄清楚这一点:
添加Columnstyles和Rowstyles是不够的,您还必须设置ColumnCount和RowCount,如上所述。但...
设置RowCount和ColumnCount也不够!您还需要添加Columnstyles和Rowstyles。
我想我终于找到了这个组件......
Bas