固定TableLayoutPanel中每行的行高

本文关键字:TableLayoutPanel 固定 | 更新日期: 2023-09-27 18:00:28

我正在使用Windows c#。

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

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

现在,我想为所有行设置一个固定的高度,但随着行数的增加,如果我用100.0FRowStyle属性设置为Percent,那么它对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#行中工作良好,但每当行的#(在本例中,循环中的变量cnt)增加时,这些行就会相互覆盖,这是一个控件对另一个控件的覆盖。。。我拖放了TableLayoutPanel控件,只手动创建了一行和两列。

所以请告诉我怎么做。

固定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;
}

xxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxx

编辑:我刚刚意识到,添加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-at-runtime?forum=winforms

    它通过在代码隐藏类中设置YourTableLayoutPanel.RowStyles[index].Height来指定。

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

相关文章:
  • 没有找到相关文章