我的应用程序使用Windows窗体中的allowdrop=true
来进行拖放操作,并且具有许多自定义事件。当我运行配置文件时,我发现大多数对象都是droptarget对象的帮助。
请让我知道如何解决它。
我在某处读取它并将其设置为false可以解决此问题,但是我的控件已加载到另一个容器的内存中,即使关闭了,结果也没有从内存中删除。当它显示时,我只是第一次获得构造函数事件,即使我们将其关闭,之后它仍保留在内存中。
因此,我没有收到任何其他事件,也没有任何事件执行,并且当我从容器中关闭并打开控件时,我继续看到内存泄漏。让我知道如何解决。我只有在关闭容器时才得到处理事件。
最佳答案
解决方法是:不要将Form
用作放置目标,使用像容器这样的小面板来切换AllowDrop
属性。
在某些情况下,以下hack解决了该问题。
void Form1_DragDrop(object sender, DragEventArgs e)
{
//reset the AllowDrop and call GC to collect memory
AllowDrop = false;
GC.Collect();
GC.Collect();
AllowDrop = true;
}