Windows窗体上的大窗户很慢并冻结

时间:2014-10-14 11:40:19

标签: c# windows forms size

当我尝试创建一个大尺寸的Windows窗体窗口时遇到问题(例如,4500X4500-我使用VScroll和HScroll用于此目的)填充了图示框。初始化窗口需要很长时间,当它最终被创建时,它反应非常慢,经常冻结甚至冻结我的整个计算机一段时间。 当我尝试将其初始化为5000X5000时,它甚至抛出异常:

  

“System.ComponentModel.Win32Exception”类型的未处理异常   发生在System.Windows.Forms.dll

中      

其他信息:创建窗口句柄时出错。

这是初始化代码:

 public Map(int width, int height, ToolBox toolbox)
    {
        InitializeComponent();
        toolBox = toolbox;
        this.Width = width * 50;
        this.Height = height * 50;
        pic = new PictureBox[width, height];
        for (int i = 0; i < width; i++)
        {
            for (int j = 0; j < height; j++)
            {
                pic[i, j] = new PictureBox();
                pic[i, j].Size = new Size(50, 50);
                pic[i, j].Left = i * 50;
                pic[i, j].Top = 24+ (j * 50);
                pic[i, j].Click += Map_Click;
                this.Controls.Add(pic[i, j]);
            }
        }
        VScrollBar vScrollBar1 = new VScrollBar();
        vScrollBar1.Dock = DockStyle.Right;
        this.AutoScroll = true;
        Controls.Add(vScrollBar1);
        HScrollBar hScrollBar1 = new HScrollBar();
        vScrollBar1.Dock = DockStyle.Bottom;
        this.AutoScroll = true;
        Controls.Add(hScrollBar1);
    }

请注意,当尺寸较小时,它可以很好地工作,例如2500X2500。
版:
请注意,所述尺寸为宽度* 50,高度* 50,而不是宽度,高度。

0 个答案:

没有答案