我正在使用Windows c#。
首先,根据我的需要,那些不能改变的事情是:
TableLayoutPanel
的大小是固定的。 现在,我想为所有行设置修复高度,但是为了增加行数,如果我将RowStyle
属性设置为Percent
100.0F
,那么它可以正常工作3到4项,但在4-5项之后,一行上的控件会覆盖另一行的控件。
我已经搜索了这个,但我无法得到正确的答案。我还尝试了AutoSize
的{{1}},Percent
,Absolute
属性,即使它不起作用。
那该做什么以及怎么做?我怎样才能做到这一点?
最终,我想像Windows C#的RowStyle
那样做。
提前致谢....
我正在使用WinForms ......示例代码在这里..
DataGridView
标签和文本框适用于4-5#行,但每当#of行(在这种情况下,for循环中的变量cnt)增加时,行会相互覆盖,即一个控件覆盖到另一个控件。 ..我拖放了TableLayoutPanel控件并手动创建了一行和两列。
所以请告诉我该怎么做。
答案 0 :(得分:10)
我自己仍然是tableLayoutPanels的新手,但我注意到在代码的底部,你正在清除集合中的所有行样式,然后你试图在foreach循环中迭代它们。
你这样做了:
tableLayout.RowStyles.Clear(); //now you have zero rowstyles
foreach (RowStyle rs in tableLayout.RowStyles) //this will never execute
tableLayout.RowStyles.Add(new RowStyle(SizeType.AutoSize));
试试这个。
TableLayoutRowStyleCollection styles =
tableLayout.RowStyles;
foreach (RowStyle style in styles){
// Set the row height to 20 pixels.
style.SizeType = SizeType.Absolute;
style.Height = 20;
}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
编辑:我刚刚意识到添加N行不会添加可以迭代的N行样式。我认为发生的事情是你要添加N行,但没有一行有行样式。
我想你可以清除()行样式,然后添加类似于你已经在做的N行样式。
答案 1 :(得分:0)
有两种方法可以增加表格布局面板的行高。
它通过设置YourTableLayoutPanel.RowStyles [index] .Height来表示类后面的代码。
另一种方法是在UI设计器中设置行高。通过用户界面,进入面板的“行”属性,选择行并使用百分比或绝对值设置所需的高度