C# 将allowdrop设置为true会导致.net应用程序内存泄漏

C# 将allowdrop设置为true会导致.net应用程序内存泄漏,c#,.net,winforms,memory-leaks,C#,.net,Winforms,Memory Leaks,我的应用程序在windows窗体中使用allowdrop=true来进行拖放操作,同时它还具有许多自定义事件。当我运行配置文件时,我发现大多数对象都是droptarget对象提供的帮助 请让我知道如何修理它 我在某个地方读到它,将其设置为false可以解决这个问题,但是我的控件被加载到另一个容器中的内存中,即使在我关闭时,它也没有从内存中删除。当构造函数事件第一次出现时,我就得到了它,之后即使我们关闭它,它也会留在内存中 所以我并没有得到任何其他事件,也并没有对它执行任何事件,当我从容器中关闭和

我的应用程序在windows窗体中使用
allowdrop=true
来进行拖放操作,同时它还具有许多自定义事件。当我运行配置文件时,我发现大多数对象都是droptarget对象提供的帮助

请让我知道如何修理它

我在某个地方读到它,将其设置为false可以解决这个问题,但是我的控件被加载到另一个容器中的内存中,即使在我关闭时,它也没有从内存中删除。当构造函数事件第一次出现时,我就得到了它,之后即使我们关闭它,它也会留在内存中


所以我并没有得到任何其他事件,也并没有对它执行任何事件,当我从容器中关闭和打开控件时,我会继续看到内存泄漏。让我知道如何修理它。只有当我关闭容器时,我才能获得dispose事件。

解决方案是:不要将
表单作为放置目的地,请使用一个类似于面板的容器来切换
AllowDrop
属性。

在某些情况下,下面的黑客已经解决了这个问题

void Form1_DragDrop(object sender, DragEventArgs e)
{
    //reset the AllowDrop and call GC to collect memory
    AllowDrop = false;
    GC.Collect();
    GC.Collect();
    AllowDrop = true;
}

你能链接到错误报告吗?嗨,你能提供一些参考文件吗?t说它的已知问题。我找不到错误报告,我编辑了答案,但我记得我读过:)@dsolimanoy,我讨厌这种情况发生。