18

ファイル/実行可能ファイル/ショートカットを Windows フォーム アプリケーションにドラッグし、ドロップされたファイルの元のパスをアプリケーションに決定させ、それを文字列として返すことができるようにしたいと考えています。

たとえば、画像をデスクトップからアプリケーションとメッセージボックスにドラッグし、画像のローカル パスを上に移動します。

それは可能ですか?誰かが私に例を教えてもらえますか?

4

2 に答える 2

43

とても簡単です。AllowDropプロパティを に設定してドラップ アンド ドロップを有効にし、イベントTrueを処理します。DragEnterDragDrop

DragEnterイベント ハンドラーでは、クラスを使用して、データが目的の型であるかどうかを確認できますDataFormats

DragDropイベント ハンドラーでは、のプロパティを使用して、Data実際DragEventArgsのデータとGetDataメソッドを受け取ります。


例:

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
于 2012-07-27T11:30:06.040 に答える