2012-02-24 4 views
0

У меня есть форма с панелью, которая покрывает всю форму и служит в качестве прокручиваемой области для дочерних элементов управления. В основном я положил PictureBox элементов управления в панель, 3-4 в столбце. Проблема в том, что число PictureBoxe велико, я не могу поместить их все в Panel, он просто отказывается установить свойство PictureBox.Left, когда я устанавливаю его выше, чем около 32470 px, т.е. когда я устанавливаю его на 32570, он устанавливается на 32470.Прокручиваемая область имеет ограничение ширины?

Есть ли предел ширины прокручиваемого родителя?

код я использую выглядит следующим образом:

for (int a...) 
{ 
    PictureBox pic = new PictureBox 
    { 
     Parent = panel1, 
     Width = 150, 
     Height = 150, 
     Left = x, 
     Top = y 
    }; 
} 
  • x и y рассчитываются внутри цикла, чтобы поместить PictureBoxes в строках/столбцах.

ответ

0

Я удивлен, что это происходит при этом значении. Это ограничение самой Windows. Он помещает все свои сообщения в 16-битное WORD, поэтому максимальное значение для любой позиции X или Y должно быть 32767. Вы всегда можете попытаться добавить другую панель при каждом нажатии этого маха, а затем вы будете ссылаться на 0 в новая панель снова?

+0

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