У меня есть TableLayoutPanel для динамического создания элементов управления с AutoScroll = true. Это нормально, когда я добавляю новые элементы управления. Но когда я удаляю и все элементы управления видны, отображается вертикальная прокрутка. Некоторые скриншоты здесь:TableLayoutPanel отображает вертикальную прокрутку
Ожидаемое/правильная видимость прокрутки:
Неправильная видимость:
Любые идеи?
Update: Вот код
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();
Авторазмер верно, AutoSizeMode является GrowAndShrink
Когда вы удаляете элементы управления, вы также удаляете строки? – LarsTech
@LarsTech да. Последняя строка имеет стиль AutoSize, но выглядит как Percent. – Max
Видя, что какой-то код поможет. Вы заставляете свою аудиторию догадываться об этом. – LarsTech