VB.net - 拖动&删除并获取文件路径?

时间:2012-07-27 11:12:41

标签: vb.net winforms drag-and-drop

我希望能够将文件/可执行文件/快捷方式拖到Windows窗体应用程序中,让应用程序确定删除文件的原始路径,然后将其作为字符串返回?

E.g。将图像从桌面拖到应用程序和消息框中,然后向上移动图像的本地路径。

这可能吗?有人可以给我一个例子吗?

由于

2 个答案:

答案 0 :(得分:33)

这很容易。只需将AllowDrop属性设置为True并处理DragEnterDragDrop事件即可启用放置和放弃。

DragEnter事件处理程序中,您可以使用DataFormats类检查数据是否属于您想要的类型。

DragDrop事件处理程序中,使用DataDragEventArgs属性来接收实际数据和[GetData][6]方法


示例:

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Me.AllowDrop = True
End Sub

Private Sub Form1_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
    Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
    For Each path In files
        MsgBox(path)
    Next
End Sub

Private Sub Form1_DragEnter(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
    If e.Data.GetDataPresent(DataFormats.FileDrop) Then
        e.Effect = DragDropEffects.Copy
    End If
End Sub

答案 1 :(得分:4)

这只是一个注释,因此如果拖放不起作用,可能是因为您在管理员模式下运行Visual Studio(Windows 7及以上版本,我相信)。这也与当前在Windows上设置的UAC级别有关。