首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TableLayoutPanel +添加新行和控件

TableLayoutPanel +添加新行和控件
EN

Stack Overflow用户
提问于 2014-10-03 05:37:52
回答 2查看 956关注 0票数 0

我在这里陷入了两难境地。我试图在底部的TableLayoutPanel中向C#中的C#中添加新行,并在每次添加新行时调整TLP的大小,我搜索了很多地方,但似乎找不到正确的方法。

PROBLEM当我添加一行并向其添加组件时,这些组件与第一行重叠。

,这就是我是如何添加新行

代码语言:javascript
复制
private int AddTableRow()
{
    int index = tableLayoutPanel1.RowCount++;
    RowStyle style = new RowStyle(SizeType.AutoSize, 20F);
    tableLayoutPanel1.RowStyles.Add(style);
    return index;
}

,这就是我是如何添加组件

代码语言:javascript
复制
private void AddControls
{
    int rowIndex = AddTableRow();  
    tableLayoutPanel1.Visible = false;
    tableLayoutPanel1.Controls.Add(myComboBox1, 0, rowIndex);
    tableLayoutPanel1.Controls.Add(myComboBox2, 1, rowIndex);
    tableLayoutPanel1.Controls.Add(mytextBox1 , 2, rowIndex);
    tableLayoutPanel1.Controls.Add(mytextBox2 , 3, rowIndex);
    tableLayoutPanel1.Controls.Add(mytextBox3 , 4, rowIndex);
    tableLayoutPanel1.Controls.Add(mytextBox4 , 5, rowIndex);
    tableLayoutPanel1.Controls.Add(mytextBox5 , 6, rowIndex);
    tableLayoutPanel1.Visible = true;
}
EN

回答 2

Stack Overflow用户

发布于 2014-10-03 10:12:22

据我所记得,RowCount并不是以任何理由获取行数的可靠方法。

相反,我将通过将控件的总数除以列数来添加要添加的行:

代码语言:javascript
复制
int rowNo = Controls.Count / numberOfColumns;

但是,除非您有充分的理由不使用DataGridView,否则我建议您这样做。TableLayoutPanel很难动态地使用。

票数 0
EN

Stack Overflow用户

发布于 2014-10-03 10:33:18

要确定的是:在AddControls()中,您是否为每一行动态创建新的组合框和文本框?我尝试一次又一次地添加相同的控件实例,并得到了与您正在经历的相同行为。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26173778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档