日期:2014-05-18  浏览次数:20803 次

关于拖拽的问题,多个文件的打开
我现在正在做一个工具,涉及到从外部拖拽多个文件来打开,但是不知道怎样才能够得到这多个文件的路径,我只能得到有焦点   的那文件的路径,不知道那些数据存储在什么地方?在DragEventArgs里边么?望高手指点!

------解决方案--------------------
下面一段代码是我拖动一个图像文件至picturebox控件中的代码,可参考一下

Private Sub PicMap_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PicMap.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop) Then '拖动地图文件至PictureBox控件
Dim MyFiles() As String = e.Data.GetData(DataFormats.FileDrop)
PicMap.Image = New Bitmap(MyFiles(0))
End If
End Sub

------解决方案--------------------
private void txtAttachPath_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) {
// 判断所拖放的是否文件类型 再设置鼠标状态
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Link;
else
e.Effect = DragDropEffects.None;
}

private void txtAttachPath_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) {
// 获取拖放文件的文件名
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
// ......
}

------解决方案--------------------
//接受拖放
private void listview_DragDrop(object sender, DragEventArgs e)
{
if (e.Effect == DragDropEffects.Link)
{
System.Array arrayFiles = (System.Array)e.Data.GetData(DataFormats.FileDrop);

//……
}
}

//判断和设置拖放
private void listview_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Link;
}
else
{
e.Effect = DragDropEffects.None;
}
}