【发布时间】:2020-09-19 09:51:13
【问题描述】:
我有一个使用Windows.Forms.Panel 来显示图片列表的应用程序。当面板的高度超过 32767 像素时,其余内容将被简单地截断。
示例:
Windows.Forms.Panel myPanel;
ArrayList pictureList;
foreach(pic in pictureList) {
myPanel.Controls.Add(pic) // adds all the objects without complaints
}
在示例中,所有元素都添加到面板中,不会引发错误,但在面板达到 32767 大小后,不再显示图像。
我的问题:是否有可能打破这个限制并在面板中显示更多内容?
我知道这种方法无论如何都不方便,但现在没有时间重新设计整个应用程序。
【问题讨论】:
-
32767 - 是
Int16类型的最大值,但Size.Width和Size.Height是Int32类型,你说的是哪个尺寸? -
@sll 我认为他的意思是 myPanel.Controls 不会超过 32k 项 - 呃...
-
Windows 本身将高度/宽度打包到一个 16 位 WORD 中,因此您在任一维度上都限制为 32767,您必须使用视口区域并仅显示需要可见的内容
-
@dave :但是 OP 说
height of the panel exceeds 32767 pixels