c#动态地将对象添加到表行

时间:2016-09-07 10:50:37

标签: c# tablelayoutpanel

我正在努力做这样的事情,但我不知道如何:

我在c#中有一个表,我在运行时增加和减少。

每一行都包含从对象中解析的数据。

我希望能够访问该行正在解析的对象,其中一些是伪的:

if (table.row.object == selectedObject)

我无法通过行号或其他内容来执行此操作,因为每次都会删除和插入行,每次使用不同的对象。

请问任何想法?

编辑:我正在使用TableLayoutPanel来处理表,这就是我添加行并删除行的方法:

我正在动态地向表中添加行,我有一组按钮,当我单击一个按钮时,它会从表中删除所有旧行,并添加与此按钮相关的新行。

这是我添加新行的方式:

tlp.RowCount++;
tlp.RowStyles.Add(new RowStyle(SizeType.AutoSize));
tlp.Controls.Add(new Label() { ... }, cellIDX, rowIDX);
// adding more columns //

并删除旧行我从下到上循环遍历所有行,删除当前单元格的所有相关控件,然后删除样式和行num,如下所示:

tlp.RowStyle.RemoveAt(rowNum);
tlp.RowCount--;

谢谢

您还可以看到我之前与此主题相关的问题: C# change table row color when mouse hover

1 个答案:

答案 0 :(得分:0)

在开始插入/删除过程之前,您可以尝试在表中使用新列(称之为original_row_no)并将行值设置为该列。这样你就可以直接引用行了(这是为了响应你的最后一行,说明"我不能从行号或其他东西那里做,因为行被删除和插入,每次都有不同的对象"

更好的方法是在表格中拥有一个唯一的ID,并根据该ID运行您的引用。

如果您显示正在尝试的代码,则可以更轻松地提供帮助。