TableLayoutPanel отображает вертикальную прокруткуC#

Место общения программистов C#
Anonymous
TableLayoutPanel отображает вертикальную прокрутку

Сообщение Anonymous »

У меня есть TableLayoutPanel для динамического создания элементов управления с AutoScroll = true. Когда я добавляю новые элементы управления, все работает нормально. Но когда я удаляю и все элементы управления становятся видимыми, видна вертикальная прокрутка.
Некоторые скриншоты здесь:

Ожидаемая/правильная видимость при прокрутке:

Изображение


Неправильная видимость:

Изображение


Есть идеи?

Обновление:
Вот код

Код: Выделить всё

tableLayoutPanel1.SuspendLayout();
tableLayoutPanel1.RowCount = 0;
tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.AutoScroll = true;
tableLayoutPanel1.Padding = new Padding(0, 0, SystemInformation.VerticalScrollBarWidth, 0);
foreach (var item in objects)
{
tableLayoutPanel1.RowCount++;
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
tableLayoutPanel1.Controls.Add(CreateNewItem(item));
}

tableLayoutPanel1.RowCount++;
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
tableLayoutPanel1.Controls.Add(CreateAddButton());

tableLayoutPanel1.ResumeLayout();
и код для удаления

Код: Выделить всё

tableLayoutPanel1.SuspendLayout();
tableLayoutPanel1.Controls.Remove(item);
tableLayoutPanel1.RowStyles.RemoveAt(0);
tableLayoutPanel1.RowCount--;
tableLayoutPanel1.ResumeLayout();
AutoSize — true, AutoSizeMode — GrowAndShrink

Вернуться в «C#»