У меня возникли трудности с тем, чтобы как вертикальная, так и горизонтальная полосы прокрутки вести себя по желанию в моей ситуации. На рассматриваемой странице есть несколько разделов, которые можно развернуть и свернуть (только один может быть расширен за раз). Для того, чтобы попытаться продемонстрировать расположение моей странице я собираюсь использовать вложенность и, возможно, глупо именования быть как можно более ясно:C# Windows Form Полосы прокрутки с несколькими контейнерами
- ucParent
- pnlParent
- pnl1Title
- pnl1
- uc1
- pnl2Title
- pnl2
- UC2
- pnl3Title
- pnl3
- uc3-1
- uc3-2
- uc3-3
- pnlParent
И так далее. Теперь pnlParent имеет dock = fill, а дочерние панели - dock = top. На всех панелях pnlXTitle есть кнопки, которые запускают поведение расширения/сбрасывания, устанавливая соответствующие панели непосредственно под включенным = visible = false.
Я хочу, чтобы горизонтальные и вертикальные полосы прокрутки отображались по мере необходимости, когда окно изменяется и скрывает содержимое, однако мне не удается выявить это поведение.
- С ucParent.AutoScroll = false и pnlParent.AutoScroll = true присутствует только вертикальная полоса прокрутки.
- С ucParent.AutoScroll = true и pnlParent.AutoScroll = false ни прокрутка работает.
- С обоими ucParent.AutoScroll = true и pnlParent.AutoScroll = true присутствует только вертикальная полоса прокрутки.
Во всех приведенных выше примерах AutoScroll = false для всех остальных панелей и пользовательских элементов управления. Из того, что я читал до сих пор, я боюсь, что настройка dock = top может помешать работе горизонтальной полосы прокрутки. Я могу заставить его отображать и работать с помощью AutoScrollMinSize, но панели имеют разные размеры, что делает это ощущение большей частью взлома, чем правильное решение.
Через мои поиски я нашел большое количество предыдущих обсуждений, вращающихся вокруг Windows Forms и полос прокрутки, но я не нашел ничего конкретного, я чувствую, что могу уверенно определить необходимое направление для своего приложения. Я бы очень признателен за любую информацию, которую вы могли бы поделиться, которая проливает свет на то, почему полосы прокрутки не работают по желанию и как это можно исправить.
Спасибо!
Благодарим за отзыв! Я боялся, что это так. Имеет смысл, что это сработает. Тем не менее, у меня есть пользовательские элементы управления внутри этих дочерних панелей, которые достаточно велики, они скрываются при изменении размера окна. Будет ли использование AutoScrollMinSize лучшим решением для этой проблемы? – goodmike
Вы не должны пристыковывать контроль, если это поведение, которое вы желаете. Вместо этого установите свойство Anchor, как описано в этом ответе здесь: http://stackoverflow.com/questions/1222830/how-to-make-scrollbars-appear-in-a-resizable-panel-when-the-contained- control-is –
Я еще не уверен, как воспроизвести расширяющееся/рушительное поведение в настоящее время верхних пристыкованных панелей с помощью якорей, но я буду об этом думать. Спасибо за ссылку! – goodmike