C # Панель автопрокрутки не работает - PullRequest
13 голосов
/ 12 января 2010

У меня есть панель с картинкой. Когда содержимое окна изображения слишком велико, я хочу полосы прокрутки. Я установил для автопрокрутки значение true на панели. Но когда содержимое окна изображения больше, чем высота панели / окна изображения, полосы прокрутки не отображаются.

Моя панель закреплена сверху, слева, снизу, справа. Picturebox также закреплен сверху, слева, снизу, справа.

Ответы [ 5 ]

20 голосов
/ 12 января 2010

Вам необходимо установить для свойства SizeMode значение AutoSize, что приведет к автоматическому изменению размера PictureBox до размера изображения.

И я думаю, что вы должны бросить якоря и только якорь в верхнем левом углу. Остальное позаботится автоматически о панели. Потому что в противном случае PictureBox, вероятно, будет соблюдать якоря, будучи не в состоянии изменить размеры больше, чем панель, которую он содержит, что снова не приведет к прокрутке.

9 голосов
/ 20 января 2010

С MSDN :

В настоящее время в Windows Forms существует ограничение, препятствующее правильной работе всех классов, производных от ScrollableControl, когда включены оба параметра RightToLeft и AutoScroll установлен на True.Например, предположим, что вы размещаете элемент управления, такой как Panel - или класс контейнера, производный от Panel (например, FlowLayoutPanel или TableLayoutPanel) - на вашей форме.Если для контейнера AutoScroll установить значение True, а затем установить для свойства Anchor одного или нескольких элементов управления внутри контейнера значение Right, полоса прокрутки не появится.Класс, производный от ScrollableControl, действует так, как если бы AutoScroll было установлено на False.

6 голосов
/ 12 января 2010

Picturebox не должен быть закреплен снизу и справа.Вместо этого измените его размер для отображения содержимого.

1 голос
/ 24 августа 2017

Для меня ниже код помог в добавлении полосы прокрутки:

Panel2.Controls.Clear();
Panel2.AutoScroll = false;
Panel2.VerticalScroll.Enabled = true;
Panel2.VerticalScroll.Visible = true;

Panel2.AutoScroll = true;
0 голосов
/ 28 ноября 2014

Измените стиль рамки панели на «Фиксированный одиночный», а затем свойство автопрокрутки панели на «Истина».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...