我有一个文件列表,其列表框中包含其名称,其内容存储在SQL表中,并希望我的应用程序的用户能够在列表框中选择一个或多个文件名并将其拖到桌面上,从而产生桌面上的实际文件.我找不到有关如何执行此操作的任何文档.谁能解释或指出解释?
稍后添加:我已经能够通过处理DragLeave事件来完成这项工作.在其中,我在临时目录中创建一个文件,其中包含所选名称和从SQL Server中提取的内容.然后我将文件的路径放入对象:
var files = new string[1];
files[0] = "full path to temporary file";
var dob = new DataObject();
dob.SetData(DataFormats.FileDrop, files);
DoDragDrop(dob, DragDropEffects.Copy);
Run Code Online (Sandbox Code Playgroud)
但这似乎非常低效和笨拙,我还没有想出一个摆脱累积的临时文件的好方法.
我继承了两个复杂的COM对象.一个来自另一个,并且(据称)GUID等等都被改变,因此他们不应该干涉.它们确实存在干扰,到目前为止我们的调试还没有确定罪魁祸首 - 我们已经完成了注册表比较和源代码差异,并查看了SCCS签名.显然我们错过了一些东西,但它们又大又复杂,我并不感到惊讶.
是否有一个工具可以帮助,可能通过检查COM对象的良好行为或检测两个COM对象之间的冲突或分析注册表?