Winforms 可滚动区域有宽度限制吗?

Winforms 可滚动区域有宽度限制吗?,winforms,scroll,Winforms,Scroll,我有一个带有面板的窗体,它覆盖了整个窗体,并作为子控件的可滚动区域。基本上,我把PictureBox控件放在面板中,3-4列。问题是当PictureBox的数量很大时,我无法将它们全部放入面板中,它只是拒绝设置PictureBox.Left属性,当我将其设置为高于约32470 px时,即当我将其设置为32570时,它被设置为32470 那么,可滚动父对象的宽度有限制吗 我使用的代码如下所示: for (int a...) { PictureBox pic = new PictureBox

我有一个带有面板的窗体,它覆盖了整个窗体,并作为子控件的可滚动区域。基本上,我把
PictureBox
控件放在面板中,3-4列。问题是当
PictureBox
的数量很大时,我无法将它们全部放入面板中,它只是拒绝设置
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
    在循环内计算,以将图片框放入行/列中

我很惊讶这种情况会以这样的值发生。这是Windows本身的一个限制。它将所有消息放在一个16位字中,因此任何X或Y位置的最大值应为32767。每当达到此最大值时,您可以尝试添加另一个面板,然后在新面板中再次从0引用?

在我的情况下,宽度可能较小,因为图像宽度为150 px+图像之间的间距。无论如何,我不知道有这样一个限制,必须实现分页。