Vad*_*oft 5 c# row-height tablelayoutpanel winforms
我正在使用Windows c#.
首先,根据我的需要,那些不能改变的事情如下:
TableLayoutPanel是固定的.现在,我想为所有行设置一个修复高度,但是为了增加行数,如果我将RowStyle属性设置为Percentwith 100.0F然后它适用于3到4个项目,但是在4-5个项目之后,一行上的控件将覆盖控件另一排.
我已经搜索了这个,但我无法得到正确的答案.我也试过AutoSize,Percent,Absolute的特性RowStyle,即使它不能正常工作.
那该怎么办?怎么办?我怎样才能做到这一点?
最终,我想像DataGridViewWindows C#一样做.
提前致谢....
我正在使用WinForms ...示例代码在这里..
int cnt = tableLayout.RowCount = myDataTable.Rows.Count;
tableLayout.Size = new System.Drawing.Size(555, 200);
for (int i = 1; i <= cnt; i++)
{
Label lblSrNo = new Label();
lblSrNo.Text = i.ToString();
TextBox txt = new TextBox();
txt.Text = "";
txt.Size = new System.Drawing.Size(69, 20);
tableLayout.Controls.Add(lblSrNo, 0, i - 1);
tableLayout.Controls.Add(txt, 1, i - 1);
}
tableLayout.RowStyles.Clear();
foreach (RowStyle rs in tableLayout.RowStyles)
tableLayout.RowStyles.Add(new RowStyle(SizeType.AutoSize));
Run Code Online (Sandbox Code Playgroud)
标签和文本框适用于4-5#行,但每当#of行(在这种情况下,for循环中的变量cnt)增加时,行会相互覆盖,这是一个控件覆盖到另一个... I拖放了TableLayoutPanel控件并手动创建了一行和两列.
所以请告诉我该怎么做.
NL3*_*294 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));
Run Code Online (Sandbox Code Playgroud)
试试这个.
TableLayoutRowStyleCollection styles =
tableLayout.RowStyles;
foreach (RowStyle style in styles){
// Set the row height to 20 pixels.
style.SizeType = SizeType.Absolute;
style.Height = 20;
}
Run Code Online (Sandbox Code Playgroud)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
编辑:我刚刚意识到添加N行不会添加可以迭代的N行样式.我认为发生的事情是你要添加N行,但没有一行有行样式.
我想你可以清除()行样式,然后添加类似于你已经在做的N行样式.
| 归档时间: |
|
| 查看次数: |
18386 次 |
| 最近记录: |