拖放;在VB.NET中拖放并获取文件路径

拖放;在VB.NET中拖放并获取文件路径,vb.net,winforms,drag-and-drop,Vb.net,Winforms,Drag And Drop,我希望能够将文件/可执行文件/快捷方式拖动到Windows窗体应用程序中,并让应用程序确定删除文件的原始路径,然后将其作为字符串返回 例如,将图像从桌面拖到应用程序中,并沿图像的本地路径向上移动messagebox 可能吗?也许有人能给我举个例子吗?很简单。只需通过将属性设置为True来启用drap和drop,并处理和事件 在DragEnter事件处理程序中,可以使用类检查数据是否属于所需的类型 在DragDrop事件处理程序中,使用的属性接收实际数据和方法 示例: Private Sub F

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

例如,将图像从桌面拖到应用程序中,并沿图像的本地路径向上移动messagebox


可能吗?也许有人能给我举个例子吗?

很简单。只需通过将属性设置为
True
来启用drap和drop,并处理和事件

DragEnter
事件处理程序中,可以使用类检查数据是否属于所需的类型

DragDrop
事件处理程序中,使用的属性接收实际数据和方法


示例:

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

这只是一个注释,说明如果拖放不起作用,可能是因为您在管理员模式下运行Visual Studio(我相信是Windows 7及更高版本)

这也与Windows安装中当前设置的级别有关。

考虑得很好(但应在有效答案下添加注释)