2012-07-27 2 views
9

나는 파일/실행 파일/바로 가기를 Windows 양식 응용 프로그램으로 끌고 응용 프로그램에서 삭제 된 파일의 원래 경로를 확인한 다음 문자열로 반환 할 수 있기를 원합니다.VB.net - 끌어서 놓기 및 파일 경로 가져 오기?

예. 바탕 화면에서 이미지를 응용 프로그램 및 메시지 상자로 드래그하여 이미지의 로컬 경로 위로 끌어 올립니다.

그럴 수 있습니까? 누군가가 저에게 예를 들어 줄 수 있습니까?

감사합니다.

답변

30

매우 간단합니다. AllowDrop 속성을 True으로 설정하고 드로우 - 앤 - 드롭을 활성화하고 DragEnterDragDrop 이벤트를 처리하기 만하면됩니다.

DragEnter 이벤트 처리기에서 데이터가 DataFormats 클래스를 사용하여 원하는 유형인지 확인할 수 있습니다.

DragDrop 이벤트 처리기에서 DataEventArgsData 속성을 사용하여 실제 데이터를 수신하십시오.


예 :

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 
2

이 그냥 메모 그렇게 드래그하고 드롭이 작동하지 않는 경우, 당신이 관리자 모드 (Windows 7에서 비주얼 스튜디오를 실행하기 때문에 될 수 있다고 명시하고 나는 믿는다). 이것은 또한 현재 Windows에 설정된 UAC 수준과 관련이 있습니다.

+0

정말 좋은 고려 사항 (하지만 유효한 답 아래에 주석으로 추가해야 함) – JCM