Вопрос по c# – Включить полосы прокрутки в окнах форм

11

Я разрабатываю приложение для форм Windows. В моем приложении у меня есть привязанные элементы управления к формам, так что формы можно максимизировать, и элементы управления будут расположены соответствующим образом. Это приложение должно поддерживать разные значения DPI.

Я установил привязки некоторых элементов управления внизу, справа и внизу справа. Свойство AutoScroll форм имеет значение true. Когда значение DPI установлено по умолчанию (96), элементы управления работают должным образом. Но проблема в том, что если экран загружается с более высоким разрешением (например, 120), даже если включены полосы прокрутки формы, элементы управления, привязанные к нижнему и нижнему правому краям, не видны.

Может ли кто-нибудь, пожалуйста, посоветовать мне по этому вопросу?

С уважением, Eranga

Я не уверен, что описание вашей проблемы связано с включенными полосами прокрутки или нет. Вы говорите, что форма ведет себя по-разному с полосами прокрутки и без них? Mr Lister
@ Мистер Листер: Да, сэр. Элементы управления, закрепленные справа, снизу, не видны на экране. Они установлены за пределами экрана. Если полосы прокрутки могут быть включены, они могут отображаться. user1314391
эта ссылка поможет вамstackoverflow.com/questions/6841285/…? nawfal

Ваш Ответ

3   ответа
2

но проблема не решена, а соответствующие сообщения продолжают поступатьSO!

Я здесь делаю некро, а не отвечаю на более свежий вопрос только потому, что он выше моегопоиск Гугл

Вопрос прост:"why won't the damn scrollbars appear on my ScrollableControl? & Quot;

Но тамcan be no specific, definitive answer, Потому что причины легион. Потому что, появятся ли полосы прокрутки на элементе управления, зависит:

not only upon it's own properties settings but also upon the state of it's parent control and also the states of any child controls.

Легко попасть в ловушку случайно изменяющихся ценностей реквизита, пока коровы не вернутся домой. Или зайдите на сайт i / webs & amp; надеюсь найтиSO Foos. Но, боже мой Вот несколько связанныхSO сообщения с выдающимся разнообразием предлагаемых резолюций:

Горизонтальная полоса прокрутки не видна в DataGridView

Горизонтальная полоса прокрутки не отображается в моем текстовом поле

Как установить полосу прокрутки в форме Windows

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

Прокручиваемая форма в c #, AutoScroll = true не работает

Как получить полосу прокрутки в Panel в VB.Net?

Есть скриншотыVS-designer страницы свойств (как здесь) & amp; даже некоторые экстремальные решения на основе кода ... мои любимые:

Добавить вертикальную полосу прокрутки на панель в .NET

Как добавить элемент управления Vscroll для формы в Visualbasic.net?

/ вздохов /

A general answer

..в формеminimal Решение GitHub для изучения некоторых из .NET прокрутки вуду:

https://github.com/violet313/TestWinForms/tree/Test1-Body-Panel

ЭтоVisual Studio 2015 Решение с использованием.NET4.52 framework.

В решении я пытаюсь создать форму, которая отвечает на некоторые динамические текстовые данные, которые должны отображаться. вот основная схема, которую я в конечном итоге ищу:

--------------------------------------------------
|      fixed-size form header       |            | 
------------------------------------|   side     |
|                                   |   panel    |
|      dynamic content panel        |   stuff    |
|                                   |            |
--------------------------------------------------
|      fixed-size form trailer                   |               
--------------------------------------------------

Я хочу, чтобы форма:

not be resizable by the user

respond to the dynamic content by:

shrinking as small as possible down to a pre-determined minimum form-size. growing up to a pre-determined maximum form-size; and providing appropriate scroll-bars on the dynamic content panel thereafter.

Возьмите его, пройдитесь по каждому из (только 9, начиная с 95dccc5) коммитов, а затем протестируйтеyour требования в здравом уме пошаговая мода. обязательно делайте ветвления всякий раз, когда вы делаете сомнительное изменение состояния.

Ирл: может быть, я дурак, но мне потребовалось более часа, чтобы прочитать MSDN, которые пытались (и не смогли) выяснить непредвиденные обстоятельства свойства элемента управления .NET. выполнение структурированных проб и ошибок таким способом заняло у меня всего 20 минут, чтобы получить то, что я хотел.

y~bwc

i know this here is a yeaz ~but who cares? but i had to get if off my chest. heh :

grrr. having to unlurk &answer this question arises out of my need to profitably take on Microsoft contract work. paymasters can be relatively (from a developer pov) non-technical and, having read lots of stuff including the words: quick, simple, straight-forward, secure, etc, come away with the impression that things .NETish is a stroll in the park. My issue with this is that i would then have difficulty trying to reasonably explain why they might need to pay me for n-day's worth of work in order to get a simple scroll-bar to appear on a responsive form.

On this occasion, i never got that far. lol. i spent a few hours wading thro the MSDN blahs trying to make it happen. and then yawned, gave up, &moved on with a pragmatic implementation. which was accepted. but it's now the w/end and i am an ocd fool who cannot let things be.

11

panel1 & quot;
тогда мы можем подать заявку как

panel1.autoscroll=true;
panel1.BorderStyle = BorderStyle.FixedSingle;

установить ширину и высоту прокрутки

panel1.SetAutoScrollMargin(int x,int y);
25

ЗадаватьAutoScroll = True В свойствах формы

Set AutoScroll = true on form

Error: User Rate Limit Exceeded

Похожие вопросы