最常见的情况是把一个文件拖放到Form窗体中,窗体显示文件的路径和文件名。这个功能容易实现,具体思路是借助Form的事件响应函数DragEnter和DragDrop来完成。
DragEnter函数主要作用是在拖拽文件进入窗体时修改鼠标图标样式,指定拖拽的可能效果(是拷贝文件数据,还是显示文件路径)。
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则包含文件名。
特殊文件的拖放(如:我的电脑