如何绕过C#Panel的最大大小限制?

时间:2015-11-30 06:44:46

标签: c# .net winforms controls panel

我正在尝试在Panel控件中显示图像(我正在使用WinForms),但图像大于面板的最大尺寸(32767像素)。

我在互联网上搜索了这个问题,但是我只找到了一些我不理解的现成解决方案,因此不想使用它们。
除了使用WPF之外,还有什么方法可以解决这个问题?

截至目前,我正在考虑手动迭代Panel中的控件并根据需要更改其位置,但是,我认为它不会非常高效和丑陋。

重现问题的示例代码:

    for (int i = 0; i < 300; i++) {
        PictureBox picbox = new PictureBox();
        picbox.BackColor = Color.Red;
        picbox.Width = 500;
        picbox.Height = 250;
        picbox.Top = i * 500;
        panelDisplay.Controls.Add(picbox);
    }

1 个答案:

答案 0 :(得分:0)

听起来我可能会尝试使用多个面板。

非常粗略:

 // (5 of these) x (60 pictureboxes in each) = 300 images in all:
 for (int panelNumber = 0; panelNumber < 5; panelNumber++) {
    Panel panel = new Panel();
    panel.Height = 30000; 
    panel.Top = panelNumber * 30000;

    // ...anything else needed to set up the panel...      

    for (int PictureBoxNr = 0; PictureBoxNr< 60; PictureBoxNr++) {
        PictureBox picbox = new PictureBox();
        picbox.BackColor = Color.Red;
        picbox.Width = 500;
        picbox.Height = 250;
        picbox.Top = PictureBoxNr * 500;
        panel.Controls.Add(picbox);
    }

    outerPanel.Controls.Add(panel);
}