VB.NET Проход по элементам управления на панели пропускает элементы управления

Написана быстрая подпрограмма в классе для перемещения элементов управления из одногоPanel другому в VB.NET, который казался достаточно простым:

Public Sub Move(ByRef OldPanel As System.Windows.Forms.Panel)
    Dim panelControl As System.Windows.Forms.Control
    For Each panelControl In OldPanel.Controls
        MessageBox.Show(panelControl.Name) 'Debugging
        OldPanel.Controls.Remove(panelControl) 'Fairly certain this line makes no difference
        NewPanel.Controls.Add(panelControl)
    Next
End Sub

Проблема в том, что он перемещает только половину элементов управления. Другие панели вообще не воспринимаются петлей и остаются связанными сOldPanel, Я убедился, что элементы управления, безусловно, являются частьюOldPanel (а не просто визуально всплывало над ним).

Например, если на панели 6 элементов управления,MessageBox.Show(panelControl.Name) только возвращает 3 из них, и только эти 3 элемента управления двигаются. Это ... сбивает с толку.

Я написал аналогичный цикл отладки внутри класса формы_Load само событие, и это правильно подбирает все 6 элементов управления на панели:

Dim panelControl As System.Windows.Forms.Control
For Each panelControl In Me.Panel1.Controls
    MessageBox.Show(panelControl.name)
Next

Есть идеи?

Ответы на вопрос(2)

Ваш ответ на вопрос