2013-02-23 2 views
3

Вот пример, на который я не могу работать. Я следил за указаниями, но когда я пытаюсь перетащить файл в форму, он не позволяет мне и дает мне курсор «Недоступный».Перетащите, чтобы получить путь к файлу

Это довольно просто. Просто включите drap-and-drop, установив для свойства AllowDrop значение True и обработайте события DragEnter и DragDrop. В обработчике событий DragEnter вы можете проверить, имеет ли данные тип, который вы хотите, с использованием класса DataFormats. В обработчике событий DragDrop используйте свойство Data для 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, где идут эти 2 строки кода? BTW, я просто пытаюсь удалить файл в фактическую форму, никаких других элементов управления в форме нет. –

+0

Обновленная проверка ответа и дайте мне знать. – coder

+0

Хорошо, спасибо, я думаю, что он почти работает, но он говорит, что Путь не объявлен. Я пробовал Dim Path как String, и это не позволило мне. Спасибо, что помогли! –

Смежные вопросы