繁体   English   中英

修复TableLayoutPanel中每行的行高

[英]Fix row height of every row in TableLayoutPanel

我正在使用Windows c#。

首先,根据我的需要,那些不能改变的事情如下:

  1. TableLayoutPanel的大小是固定的。
  2. 列的总数是固定的。

现在,我要为所有行的固定高度,但由于增加了行,如果我的设置RowStyle属性Percent100.0F然后3到4个项目工作正常,但经过4-5项,在一个控制行覆盖另一行的控件。

我已经搜索了这个,但我无法得到正确的答案。 我也尝试过RowStyleAutoSizePercentAbsolute属性,即使它不起作用。

那该怎么办?怎么办? 我怎样才能做到这一点?

最终,我想像Windows C#的DataGridView一样。

提前致谢....

我正在使用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));

标签和文本框适用于4-5#行,但每当#of行(在这种情况下,for循环中的变量cnt)增加时,行会相互覆盖,这是一个控件覆盖到另一个... I拖放了TableLayoutPanel控件并手动创建了一行和两列。

所以请告诉我该怎么做。

我自己仍然是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. 请查看以下链接: https//social.msdn.microsoft.com/Forums/windows/en-US/d80db8e1-d6cc-48b8-957f-0f73263c6d4a/how-to-change-the-row-height-of- A-TableLayoutPanel中,在运行时?论坛=的WinForms

    它通过在类后面设置YourTableLayoutPanel.RowStyles [index] .Height int来指定。

  2. 另一种方法是在UI的设计器中设置行高。 通过UI,进入面板的Rows属性,选择行并使用百分比或绝对值设置所需的高度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM