Jak*_*rds 3 vb.net file-io drag-and-drop
我一直在VB.NET中开发一个应用程序,它需要将一个控件对象(例如,一个ListViewItem)拖出窗体,然后拖到用户指定的位置(例如,在桌面上或在文件夹中) .
但是,"ListViewItem"表示的"复制"文件尚不存在.需要下载然后将其放在用户指定的位置.我能够获得目的地丢弃的路径/位置吗?然后我会继续下载该文件,然后将其放在指定的用途.
我已经查看了有关类似问题的其他问题,详细说明了表单外的拖动操作,它似乎没有办法确定快捷方式的去向或如何标记目标位置.
从本质上讲,我认为它可能需要某种"动态链接"或"虚拟文件",正如我在别处看到的那样.然后,在删除操作之后,以某种方式从我的应用程序访问此"链接",继续下载文件并将其放在最终的放置目标中.
任何帮助表示赞赏,提前谢谢!
结果:
Roger Lipscombe提供了一个链接,其中包含其他文章的链接,以及看似有希望的信息.以下链接可能在实现拖放操作时非常有用,而无需提供托管代码中所需的确切数据.
通过在IDataObject :: GetData实现中响应CFSTR_PREFERREDDROPEFFECT,您可以要求Explorer将IDataObject :: GetData调用延迟到CFSTR_FILEDESCRIPTOR到实际发生丢弃的时间.有关示例,请参见http://hg.mozilla.org/mozilla-central/file/b49a6a8a4973/widget/src/windows/nsDataObj.cpp.请注意,如果目标是虚拟文件夹,则放置目标没有义务遵守您的偏好.
Explorer按照顺序检查文件名的剪贴板格式
CF_HDROP
CFSTR_FILEDESCRIPTOR/CFSTR_FILECONTENTS
CFSTR_FILENAME
不要使用CF_HDROP,因为它要求源文件实际存在于文件系统中的某个位置.请改用CFSTR_FILEDESCRIPTOR/CFSTR_FILECONTENTS.
| 归档时间: |
|
| 查看次数: |
3167 次 |
| 最近记录: |