C#动态创建控件导致“创建窗口句柄时出错”
窗口界面上有一个picturebox控件,该控件显示的是一些平面图,大概每隔10秒会让该picturebox控件加载不同的平面图,然后从数据库里读取要在该平面图上显示的一些记录,根据记录在这个picturebox上动态创建一些小的picturebox控件作为监控点,代码如下:
//把平面图上已经显示的监控点图标清空
foreach (Control cl in ptbMap.Controls)
{
ptbMap.Controls.Remove(cl);
cl.Dispose();
}
ptbMap.Controls.Clear();
//初始化平面图显示区域的资源
if (ptbMap.Image != null)
{
ptbMap.Image.Dispose();
ptbMap.Image = null;
}
ptbMap.Image = OperTextResource.LoadLocalImage(Application.StartupPath, mapFile);
PictureBox ptbEqu = new PictureBox();
ptbEqu.BackColor = System.Drawing.Color.Transparent;
ptbEqu.Cursor = Cursors.Arrow;
ptbEqu.SizeMode = PictureBoxSizeMode.AutoSize;
ptbEqu.Tag = hexRecordValuesSplit1[0];
ptbEqu.Name = "ptbEqu" + hexRecordValuesSplit1[0];
ptbMap.Controls.Add(ptbEqu);
ptbEqu.Location = ptbCur;
ptbEqu.ContextMenuStrip = cMenu;
ptbEqu.Visible = true;
//注册监控图标的事件
ptbEqu.MouseEnter += new System.EventHandler(PtbEqu_MouseEnter);
ptbEqu.MouseDown += new System.Windows.Forms.MouseEventHandler(PtbEqu_MouseDown);
结果在运行了两天后,出现“创建窗口句柄时出错”,出错的语句是在ptbMap.Controls.Add(ptbEqu)这里,内存也不断增加,请问各位高手,怎么解决资源回收问题。