C# 如何用DragDrop拖放特殊文件到程序窗口 (如:我的电脑 回收站 网上邻居)

本文介绍了如何在C#中利用DragDrop功能处理特殊文件(如我的电脑、回收站、网上邻居)的拖放操作。由于特殊文件在拖放时没有FileDrop和FileName信息,而是提供‘Shell IDList Array’等其他信息,因此需要通过CIDA结构和PIDL获取文件详情。文中给出了实现特殊文件拖放的代码示例。
摘要由CSDN通过智能技术生成
    最常见的情况是把一个文件拖放到Form窗体中,窗体显示文件的路径和文件名。这个功能容易实现,具体思路是借助Form的事件响应函数DragEnter和DragDrop来完成。
    DragEnter函数主要作用是在拖拽文件进入窗体时修改鼠标图标样式,指定拖拽的可能效果(是拷贝文件数据,还是显示文件路径)。

    DragDrop函数主要作用是在鼠标拖放结束时进行某些操作。

    可以使用下面代码实现常规文件的拖放:

<pre name="code" class="csharp">        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
        <span style="white-space:pre">	</span>e.Effect = DragDropEffects.Link; //重要代码:把拖拽的文件当成一个文件链接
        }
<span style="white-space:pre">	</span>private void Form1_DragDrop(object sender, DragEventArgs e)
        {
                //string[] formatList = e.Data.GetFormats();
                string  filename = ((Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString ();
                //或者 string  filename = ((Array)e.Data.GetData(“FileDrop”)).GetValue(0).ToString ();
        }

     函数e.Data.GetData(string)里可填的数据类型可以是DataFormats.FileDrop,也可以是字符串形式如"FileDrop","FileName"等,根据拖放文件的类型而不同。我们可以通过e.Data.GetFormats()来获得具体的格式类型列表。 

    常规文件Formats类型信息如下:

    例如:FileDrop包含了文件的全路径字符串,FileName则包含文件名。

    特殊文件的拖放(如:我的电脑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值