Порядок индекса строки TableLayoutPanel неправильный из того, что показано? - PullRequest
0 голосов
/ 26 сентября 2019

Впервые задаю вопрос здесь.До сих пор вы оказали потрясающую помощь, но эта проблема действительно поставила меня в тупик!

В моей форме у меня есть такая структура: Fig: 1, my Table Layout panels

Она состоит из 1 TableLayoutPanel с 3 рядами (Я называю это rowLayoutPanel), каждая строка содержит другой TableLayoutPanel с несколькими столбцами (я называю их columnLayoutPanels), каждый из которых содержит один GroupBox

. Я хочу получить список GroupBoxes в columnLayoutPanelв одной строке rowLayoutPanel

Для этого я использую функцию a с этим кодом, предоставляя ей 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,как вы можете видеть из этого изображения: Fig 2: The outcome of calling my function with index 1

Вот где это становится странным.Я проверяю переменную columnLayoutPanels из функции и обнаруживаю, что индексы не соответствуют тому, что показано: Fig 3: The apparent contents of index 1, which does not match what is shown as being in index 1 in Fig 1.

Я нахожу группы, которые я ищу, в индексе 2: Fig: 4, the groupboxes I am looking for

Между тем, групповые блоки, показанные в индексе 2 на рисунке 1, находятся в индексе 0 списка.

Что я делаю не так?Изменение высоты индекса строки все еще меняет правильную высоту индекса.

...