2013-02-23 57 views
3

的路徑這裏是我不能去上班的例子。我遵循指示,但是當我嘗試將文件拖放到表單時,它不讓我,並給我不可用的光標。拖放獲取文件

這是很容易。只需通過設置AllowDrop屬性爲True使drap-and-drop和處理dragenter和的DragDrop事件。在DragEnter事件處理程序中,可以使用DataFormats類檢查數據是否是您想要的類型。在DragDrop事件處理程序,使用DataEventArgs數據屬性接收的實際數據。

例子:

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 

回答

3
Imports System.IO 

Public Class Form1 

    Private Sub Form1_Load(sender As Object, e As 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 theFiles() As String = CType(e.Data.GetData("FileDrop", True), String()) 
     For Each theFile As String In theFiles 
      MsgBox(theFile) 
     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 
End Class 
+0

謝謝你的快速反應,但我仍然無法弄清楚。我是vb.net的新手,這兩行代碼在哪裏?順便說一句,我只是試圖放下一個文件到實際的窗體上,窗體上沒有其他控件。 – 2013-02-23 04:57:21

+0

更新回答檢查現在,讓我知道。 – coder 2013-02-23 05:09:33

+0

好的,謝謝,我認爲它幾乎可以工作,但它說Path沒有被聲明。我試圖昏暗的路徑作爲字符串,它不會讓我。謝謝你的幫助! – 2013-02-23 05:09:41