У меня был случай, когда я работал над приложением для покупок, у меня был список элементов UserControl
, который содержал вертикальный список позиций UserControl
s (все Dock=DockStyle.Top
, если это рисует картину), и Я отправлял список элементов в метод в элементе управления списком элементов и просто создавал и добавлял все элементы управления на панель.
Мало того, что элемент управления прокручивался до самого конца, все элементы были в обратном порядке. Список был отсортирован в правильном порядке, но когда я отправил каждый из них в метод ItemListControl.Controls.Add()
, он разместил их в обратном порядке. Я исправил это, используя SetChildIndex()
, чтобы расположить их в обратном порядке.
public void Add(ItemControl itemControl)
{
_itemPanel.Controls.Add(itemControl);
_itemPanel.Controls.SetChildIndex(itemControl, 0);
}
Теперь, когда я думаю об этом, DockStyle.Top
может быть причиной того, что они добавляются в обратном порядке. Трудно сказать, потому что, если я изменю DockStyle на что-то другое, не все элементы управления будут отображаться.
В любом случае, размещение элементов управления в правильном порядке решило проблему с прокруткой.