更改tableLayout面板内的控件宽度

时间:2011-12-02 18:31:50

标签: c# .net winforms user-controls tablelayout

我正在创建多行文本框并将其放在表格布局面板中:

tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.ColumnStyles.Clear();

tableLayoutPanel1.AutoScroll = true;
tableLayoutPanel1.GrowStyle = TableLayoutPanelGrowStyle.AddRows;
textbox1.Width = tableLayoutPanel1.Width - 100;
textbox1.Height = 150;
textbox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));

我在Textbox中添加tableLayout后,其宽度发生变化,其滚动隐藏在表格布局滚动条后面。我尝试了以下代码,但它不起作用:

tableLayoutPanel1.ColumnStyles[0].SizeType = SizeType.Percent;
tableLayoutPanel1.ColumnStyles[0].Width=80;

1 个答案:

答案 0 :(得分:0)

设置锚点时,让表格布局面板(TLP)规则为文本框的大小。要使文本框负责,您必须告诉TLP自动调整行和列。也就是说:文本框所在的行和列应该有SizeType = SizeType.AutoSize

我必须承认,手动编写TLP是很困难的。在形成TLP和子控件之后,我有时会采用类似于动态发生的方式来窥探designer.cs文件。