最近在做一个winform 的项目,由于是需要多页面切换跳转的,所以用了MDI窗体,经常需要子窗体之间跳转,窗体的跳转的代码如下:
FormFaceLogin frm = new FormFaceLogin();
frm.TopLevel = false;
frm.Dock = DockStyle.Fill;
frm.FormBorderStyle = FormBorderStyle.None;
//设置新窗体的Parent
frm.Parent = this;
//释放资源
foreach (Control item in this.Controls)
{
item.Dispose();
}
this.Controls.Clear();
this.Controls.Add(frm);
frm.Show();
窗体切换的次数多了,就会报错:创建窗口句柄时出错,尝试了各种办法都没有解决,最后通过断点调试,发现窗体跳转的时候,并没有执行FormClosed方法和FormCloseing方法,然后每一次跳转窗体的时候,就会重新new一次窗体对象,对象一直在增加,但是并没有销毁,知道了问题所在,就好解决了,解放方案如下ÿ