Введение
Я написал простой пользовательский элемент управления.
Элемент управления содержит панель FlowLayoutPanel и кнопку на ней.
Обработчик события нажатия кнопки выглядит следующим образом:
private void uxAdd_Click(object sender, EventArgs e)
{
count++;
Label label = new Label();
label.Text = "Label " + count.ToString();
uxFlowLayout.Controls.Add(label);
}
Кнопка Add
добавляет метку к FlowLayoutPanel
, и поскольку свойства FlowLayoutPanel.AutoSize
и AutoSize
элемента управления равны true, а FlowLayoutPanel.FlowDirection
равна TopDown
, элемент управления будет увеличен по высоте.
Я поместил свой пользовательский элемент управления в форму и установил для свойства AutoScroll
формы значение true.
Также я написал следующий Layout обработчик событий:
private void MainForm_Layout(object sender, LayoutEventArgs e)
{
uxSection.Width = this.ClientSize.Width;
}
( uxSection - это пользовательский элемент управления, о котором я говорю в начале раздела Введение )
Задача
Вот что я делаю:
Шаг 0 . Запустите программу.

Шаг 1 . Добавьте несколько меток, чтобы появилась вертикальная полоса прокрутки.

Шаг 2 . Прокрутите до конца формы.

Шаг 3 . Изменение размера формы по горизонтали.

Как вы можете видеть, после изменения размера формы позиция полосы прокрутки находится не внизу (я ожидаю, что она будет внизу).
Итак, вопрос в том, чего мне не хватает? Почему полоса прокрутки сбрасывается наверх?