第一次在这里提问。到目前为止,您一直是一个了不起的帮助,但是这个问题确实让我感到困惑!
在我的表单中,我具有以下结构:
[它包含1个具有3行的TableLayoutPanel(我将其称为rowLayoutPanel),每行包含另一个具有多个列的TableLayoutPanel(我将其称为columnLayoutPanels),每个列均包含一个GroupBox
我想在rowLayoutPanel的单行中获得columnLayoutPanel中GroupBox的列表
为此,我在此代码中使用了一个函数,为它提供了rowLayoutPanel和一个整数'rowPanelRowIndex',其中包含rowLayoutPanel中所需行的索引
private List<GroupBox> GetGroupboxesFromRow(TableLayoutPanel rowLayoutPanel, int rowPanelRowIndex)
{
List<TableLayoutPanel> columnLayoutPanels = rowLayoutPanel.Controls.OfType<TableLayoutPanel>().ToList<TableLayoutPanel>();
List<GroupBox> groupBoxes = columnLayoutPanels[rowPanelRowIndex].Controls.OfType<GroupBox>().ToList<GroupBox>();
return groupBoxes;
}
在这种情况下,我需要中间一行,因此我这样调用该函数:
List<GroupBox> groupBoxes = GetGroupboxesFromRow(theLayoutPanelInFigure1, 1);
但是我得到的列表不包含来自索引1的组框,而是包含来自索引0的组框,如您从该图像中看到的:图2:使用索引1>
调用我的函数的结果这是很奇怪的地方。我检查了函数中的columnLayoutPanels变量,发现索引与显示的内容不对应:[我在索引2中找到了我要查找的分组框,
同时,图1的索引2中显示的组框在列表的索引0中。
我在做什么错?更改rowindex的高度仍会更改正确索引的高度。
第一次在这里提问。到目前为止,您一直是一个了不起的帮助,但是这个问题确实让我感到困惑!在我的表单中,我具有以下结构:它由1个具有3行的TableLayoutPanel组成(...
我使用来规避了整件事
private List<GroupBox> GetGroupboxesFromRow(TableLayoutPanel rowLayoutPanel, int rowPanelRowIndex)
{
TableLayoutPanel columnLayoutPanel = (TableLayoutPanel)rowLayoutPanel.GetControlFromPosition(0, rowPanelRowIndex);
List<GroupBox> groupBoxes = columnLayoutPanel.Controls.OfType<GroupBox>().ToList<GroupBox>();
return groupBoxes;
}