Как заставить полосы прокрутки появляться на панели с изменяемыми размерами, когда содержащийся элемент управления слишком велик для него? - PullRequest
16 голосов
/ 03 августа 2009

Я занимаюсь разработкой приложения для Windows Forms (.NET 2.0, VS 2005). У меня есть форма, которая по существу содержит панель, которая динамически изменяется с формой:

this.panel1.Dock=DockStyle.Fill;

Эта панель просто используется в качестве контейнера. Во время выполнения будет добавлен пользовательский элемент управления:

UserControl uc=new UserControl();
panel1.Controls.Add(uc);
uc.Dock=DockStyle.Fill;

Поскольку этот пользовательский элемент управления имеет требование к минимальному размеру, я хочу, чтобы полосы прокрутки появлялись на панели, если он становится слишком маленьким, чтобы показать весь элемент управления:

this.panel1.AutoScroll=true;

Это не работает. Я попытался изменить размер панели, используя свойство Anchor, а не свойство Dock, но безрезультатно.

Ответы [ 3 ]

25 голосов
/ 04 августа 2009

Не закрепляйте свой пользовательский контроль. Вместо этого используйте свойство Anchor. (Якорь со всех четырех сторон). Установите свойство MinimumSize пользовательского элемента управления Установите свойство панели AutoScrollMinSize

Полосы прокрутки панели не появятся, если вы не установите ее свойство AutoScrollMinSize. Установка Dock для элемента управления на Fill, кажется, скрывает полосы прокрутки панели.

2 голосов
/ 13 августа 2010

После InitializeComponent в диалоговой форме я сделал это, и это, похоже, работает:

tableLayoutPanel1.AutoScrollMinSize = tableLayoutPanel1.GetPreferredSize(new Size(1, 1));

У меня есть несколько подпанелей в таблице. Все строки и столбцы установлены на AutoSize. По какой-то причине элемент управления недостаточно умен, чтобы сообщить элементу прокрутки его предпочтительный размер.

1 голос
/ 19 июля 2012

Panel.AutoScroll = * Правда работает - СЕЙЧАС! Я играл и играл с вышеизложенными идеями, как для панели, так и для пользовательского управления, и, наконец, вернул все обратно к значениям по умолчанию, установил автопрокрутку на панели и ... вуаля! как-то снова работает ... иди разберись ...

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