我有一个可以动态添加到devexpress选项卡控件的表单。当您第一次单击选项卡时,控件就在那里。您可以根据需要添加其他内容。每个人都有一个删除按钮。但是,如果单击“添加”按钮,则会在运行过程中添加大约30 MB。当你删除那里的MB时,MB会留在内存中。
我的删除代码:
MyCustom temp = this._UIList[idx] as MyCustom;
if (this._UIList.Count == 1)
{
temp.Clear();
}
else
{
if (temp != null)
{
this._UIList.RemoveAt(idx);
this._UIList.TrimToSize();
this.pnlInner.Controls.Remove(temp);
temp.CleanUP();
temp.Dispose();
//now reshuffle all the note controls
ReshuffleMyCustomControls();
}
}
任何方向都会非常有帮助。感谢。
答案 0 :(得分:1)
确保删除已连线的所有事件处理程序。他们可以在内存中保存引用。
对于你所连接的任何事件,你必须做这样的事情:
stripevents(AddressOf Any_Control_ValChanged)
stripevents(AddressOf Any_EnterControl)
stripevents(AddressOf Any_LeaveControl)
stripevents(AddressOf ButtonClick)
Sub stripevents(ByVal eh As EventHandler)
[Delegate].RemoveAll(eh, eh)
End Sub