#c# #winforms #scrollbar
#c# #winforms #полоса прокрутки
Вопрос:
Вот ситуация:
Я пытаюсь управлять полосой прокрутки flowLayoutControl с помощью devexpress controls VerticalScroll.
Теперь — flowLayoutControl с автоматической прокруткой = true. Я добавил новый элемент управления verticalscroll и закрепил его справа. Итак, теперь элемент управления вертикальной прокруткой Devexpress находится прямо поверх полосы прокрутки FlowLayout.
Также вертикальная прокрутка FlowLayoutPanel не скрывается при выполнении следующего кода:
spotWinFlowLayout1.VerticalScroll.Visible = false
Я настроил следующие обработчики событий:
private void spotWinFlowLayout1_Resize(object sender, EventArgs e)
{
SetupVerticalScrollBar();
}
private void SetupVerticalScrollBar()
{
vScrollBar1.Minimum = spotWinFlowLayout1.VerticalScroll.Minimum;
vScrollBar1.Maximum = spotWinFlowLayout1.VerticalScroll.Maximum;
vScrollBar1.LargeChange = spotWinFlowLayout1.VerticalScroll.LargeChange;
vScrollBar1.SmallChange = spotWinFlowLayout1.VerticalScroll.SmallChange;
}
private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
spotWinFlowLayout1.VerticalScroll.Value = e.NewValue;
}
Все работает нормально, за исключением случаев, когда при загрузке формы в flowLayoutControl уже есть полоса прокрутки,
Свойства spotWinFlowLayout1.VerticalScroll.XXX еще не установлены. Итак, обе полосы прокрутки не синхронизированы. Но как только я изменяю размер формы, обе синхронизируются.
Итак, когда инициализируется полоса прокрутки для FlowLayoutPanel?
Ответ №1:
Итак, когда инициализируется полоса прокрутки для FlowLayoutPanel?
Это может звучать как ответ smartalec: «Когда элемент управления нарисован или помещен в форму«, что является причиной того, что при настройке размера формы они синхронизируются. (они снова рисуются)
Решение состоит в том, чтобы вручную добавить полосы прокрутки самостоятельно.
Комментарии:
1. Ну, изначально установка для элемента управления значения visible = false, а затем при FormLoad значение true решает проблему. Спасибо за совет.
2. @Aseem — Я рад помочь, на самом деле мне поручили сделать что-то подобное во время занятий несколько лет назад. Это включало в себя разблокировку полосы прокрутки, когда было достаточно контента для прокрутки.