当我尝试创建一个大尺寸的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,而不是宽度,高度。