Для простого случая, когда оба элемента управления находятся на одном и том же FlowLayoutPanel
, используйте метод SetChildIndex
для Controls
.
Как то так ...
var alphaIndex = panel.Controls.IndexOf(controlAlpha);
var betaIndex = panel.Controls.IndexOf(controlBeta);
panel.Controls.SetChildIndex(controlAlpha, betaIndex);
panel.Controls.SetChildIndex(controlBeta, alphaIndex);
Примечание: я не обработал последовательность здесь должным образом - вам нужно сначала поставить более ранний элемент управления на место, иначе, когда второй будет перемещен вперед, результирующий индекс будет слишком большим. Но это упражнение для читателя.
В более сложном случае, когда элементы управления находятся на разных FlowLayoutPanel
с, код проще (последовательность не имеет большого значения) и сложнее (каждый элемент управления необходимо удалить с одной панели и добавить в другой).