ファイル/実行可能ファイル/ショートカットを Windows フォーム アプリケーションにドラッグし、ドロップされたファイルの元のパスをアプリケーションに決定させ、それを文字列として返すことができるようにしたいと考えています。
たとえば、画像をデスクトップからアプリケーションとメッセージボックスにドラッグし、画像のローカル パスを上に移動します。
それは可能ですか?誰かが私に例を教えてもらえますか?
ファイル/実行可能ファイル/ショートカットを Windows フォーム アプリケーションにドラッグし、ドロップされたファイルの元のパスをアプリケーションに決定させ、それを文字列として返すことができるようにしたいと考えています。
たとえば、画像をデスクトップからアプリケーションとメッセージボックスにドラッグし、画像のローカル パスを上に移動します。
それは可能ですか?誰かが私に例を教えてもらえますか?
とても簡単です。AllowDrop
プロパティを に設定してドラップ アンド ドロップを有効にし、イベントTrue
を処理します。DragEnter
DragDrop
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