我的代码的拖动部分如下:
private void richTextBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
}
我正在使用Win10-64bit和12GB RAM,并且在500个子目录中有50,000个.eml文件。如果我使用Windows资源管理器直接导航到这些子目录之一,并选择其中包含的100个文件中的一个或多个,则可以将它们拖放到应用程序中的RichTextBox或桌面上,一切都很好。如果我使用Windows资源管理器仅从其父目录中搜索一个子目录,然后从结果列表中约100个文件中进行拖动,则它也适用于这两个目录。
但是,如果我使用Windows资源管理器从这些子目录中的几个子目录的父目录中进行递归搜索,并获得5,000甚至50,000个文件的列表,如果我尝试从结果列表中拖动甚至一个文件,仍然可以完美地在桌面上运行,但是当我将鼠标拖到RichTextBox上时,不会显示“复制”效果。取而代之的是,我只用一个斜线穿过圆。我在DragDropEffects.Copy行上设置了一个断点,它确实到达了该行。
对我来说奇怪的是,我可以从该搜索列表完全拖到桌面上,包括所有50,000个文件。我知道我可以在代码中实现所有单个目录的横向转换,但是拖放方法是我希望满足的需求。建议将不胜感激。