harichander Ответов: 1

Как добавить полосу прокрутки в форму, чтобы datagridview добавить в форму с 500 строками не имел полосы прокрутки


I am trying to add a scroll bar to a form , so that the Datagridview add to the form,with 500 rows does not have scroll bar in c# windows. But, datagridview is not showing the bottom rows, when i tried to put the height of around 1000.

Please help me...

Thank you.


Что я уже пробовал:

Но datagridview не показывает нижние строки, когда я пытался поставить высоту около 1000.

Я попытался добавить панель в форму, и дал высоту 10000px, и добавил сетку с высотой 10000px, но обе они не видны ниже высоты формы, и ни одна полоса прокрутки не видна.

harichander

Мне нужна полоса прокрутки для всей формы, какие бы элементы управления там ни находились, чтобы я мог прокручивать форму примерно на 1000 пикселей

Philippe Mori

Поместите полосу прокрутки в DataGridView. Это и проще, и стандартнее.

harichander

да, я принимаю это, но мое требование состоит не в том, чтобы иметь полосу прокрутки для datagridview,а в форме в целом, как мы видим в случае веб-формы, все содержимое идет вниз, когда мы прокручиваем.

Philippe Mori

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

Элемент управления DataGridView предназначен для работы с фиксированным размером и не имеет возможности автоматического изменения размера. Если вы попытаетесь сделать свой собственный, то это может оказаться сложнее, чем вы думаете, когда вам придется учитывать DPI, масштабирование формы, размер шрифта многострочного текста и многое другое...

Если вам нужно веб-поведение, то сделайте веб-сайт (или встроите веб-браузер в свое приложение) или попробуйте найти элемент управления, который имеет желаемые возможности или у вас есть собственный контроль.

Вам решать, хотите ли вы заменить минуты работы днями или даже неделями работы. Я бы не рекомендовал идти этим путем.

BillWoodruff

Основываясь на многолетнем опыте работы с WinForms и проблемах прокрутки / полосы прокрутки как панели, так и UserControl, я предлагаю вам забыть об этой идее.

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

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Я понятия не имею, почему полоса прокрутки DGV недостаточна, но это не мое приложение.

Не беспокойтесь о самом элементе управления полосой прокрутки. Он вообще ничего не делает, если вы не предоставите код для обработки его событий и не сделаете все, что вам нужно сделать, чтобы получить свой эффект. Я понятия не имею, что это за эффект, так как вы не описали, что именно вы пытаетесь сделать.

Итак, исходя из предположения, что вы просто хотите, чтобы DGV прокручивался без строк заголовка и заставлял DGV заполнять всю форму, все, что вам нужно сделать, это поместить элемент управления панелью в форму и изменить его свойство Dock на Fill, а свойство AutoScroll-на True.

Добавьте свой DGV на панель, а не на форму, и вы получите полосу прокрутки бесплатно.


harichander

Я попытался добавить панель в форму, и дал высоту 10000px, и добавил сетку с высотой 10000px, но обе они не видны ниже высоты формы, и ни одна полоса прокрутки не видна.

Dave Kreskowiak

Разве я сказал дать панели высоту 10 000 пикселей? НЕТ, Я НЕ ЗНАЛ. Я сказал Док.

Sergey Alexandrovich Kryukov

5ед. Пока все выглядит довольно безнадежно...
—СА

harichander

Я имею в виду, как в Примере с веб-страницей, где весь контент идет вниз, когда мы перемещаем полосу прокрутки

Dave Kreskowiak

Вы не можете сделать контрольную высоту и / или ширину такой большой, как хотите. Существуют ограничения, налагаемые GDI. Если данные в вашем элементе управления превысят эти пределы, ваше приложение сломается, и вы ничего не сможете с этим поделать в вашем текущем дизайне.

Я предлагаю забыть об этом дерьме "прокрутка как веб-страница"и использовать элементы управления по назначению и реализовать подкачку.

BillWoodruff

Это факт, что вы можете установить свойство Size элементов управления, таких как панель или UserControl, размещенных на форме, чтобы они были намного больше разрешения монитора (что ограничивает возможный размер самой формы).

К сожалению, также верно, что заставить полосы прокрутки работать должным образом в панели или UserControl с таким "расширенным" размером часто трудно или невозможно.

Dave Kreskowiak

Я знаю, что вы можете сделать его больше, чем размер экрана, совсем немного больше. Проблема в том, что вы не можете сделать элемент управления огромным, например, 300 000 пикселей в высоту. Формы будут блевать на него.

У меня никогда не было проблем с тем, чтобы полосы прокрутки правильно работали на панели. С другой стороны, я действительно не использую их, чтобы содержать такие огромные элементы управления. В последний раз, когда я использовал подобную настройку, я писал визуализатор изображений для отладчика VS.