w14243 Ответов: 1

Прокручиваемый размер панели Winform


Я использую VS2015/C# на Win10 для тестирования панели управления:

Добавьте 50 элементов управления PictureBox в панель panel1:

Image img = изображение.FromFile (Приложение.StartupPath + @ "\1. png"); / / любое изображение

панель 1.Автопрокрутка = истина;
панель 1.Высота = 500;

for (int i = 0; i < 50; i++)
{
Элемент управления PictureBox ПБ = новый элемент управления PictureBox();
pb. Left = i*10;
ПБ.Топ = я * (рис.Высота + 10);
ПБ.SizeMode = PictureBoxSizeMode.Авторазмер;
ПБ.Изображение = ИМГ;
toolTip1.SetToolTip(ПБ, я.Метод toString()+": "+ПБ.Топ.Метод toString());
панель 1.Управления.Добавить (pb);
}

Если "верх" графической коробки меньше 32767, то графическую коробку можно поместить в правильное положение. Но если "верх" графической коробки больше 32767, то графическая коробка не может быть помещена в правильное положение, она будет помещена в нижнюю часть панели. Другими словами, максимальная прокручиваемая высота панели управления равна 32767.

Я хочу, чтобы все поле изображения находилось в нужном положении на панели. Есть ли способ увеличить прокручиваемый размер панели?

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

Эта проблема существует на Win7 / 8 / 10, но не найдена в WinXP. Это не имеет никакого отношения к версиям VS и версиям .NET framework, а только к версиям Windows.

Dharmesh .S. Patil

Попробуйте использовать элемент управления FlowLayoutPanel для добавления picturebox вместо панели, которая автоматически обрабатывает положение picturebox..

Ralf Meier

Я бы построил свою собственную индивидуальную панель, которая имеет то поведение, которое я хочу иметь.
В этой панели я бы не стал размещать все Ваши фотографии - только те, которые можно увидеть, и еще одну вверху (отрицательные координаты) и еще одну внизу (вне панели).
Теперь я бы создал специальную функцию прокрутки, которая работает только с этими элементами управления, и назначил бы им (при необходимости) новые картинки.

Philippe Mori

В качестве решения это стоило бы 5 баллов...

Ralf Meier

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

Maciej Los

Это решение-наверняка - даже если это ваше мнение (совет).

Ralf Meier

Ладно ... готово ...

1 Ответов

Рейтинг:
2

Ralf Meier

Я бы построил свою собственную индивидуальную панель, которая имеет то поведение, которое я хочу иметь.
В этой панели я бы не стал размещать все Ваши фотографии - только те, которые можно увидеть, и еще одну вверху (отрицательные координаты) и еще одну внизу (вне панели).
Теперь я бы создал специальную функцию прокрутки, которая работает только с этими элементами управления, и назначил бы им (при необходимости) новые картинки.


Maciej Los

5ед!

Ralf Meier

Спасибо, Мацей