私はファイル/実行可能ファイル/ショートカットをWindowsフォームアプリケーションにドラッグして、アプリケーションがドロップされたファイルの元のパスを特定して文字列として返すようにしたいと思っていますか?VB.net - ドラッグ&ドロップしてファイルパスを取得しますか?
など。画像をデスクトップからアプリケーションにドラッグし、メッセージボックスを画像のローカルパスの上にドラッグします。
これは可能ですか?誰か私に例を教えてもらえますか?
ありがとうございました
私はファイル/実行可能ファイル/ショートカットをWindowsフォームアプリケーションにドラッグして、アプリケーションがドロップされたファイルの元のパスを特定して文字列として返すようにしたいと思っていますか?VB.net - ドラッグ&ドロップしてファイルパスを取得しますか?
など。画像をデスクトップからアプリケーションにドラッグし、メッセージボックスを画像のローカルパスの上にドラッグします。
これは可能ですか?誰か私に例を教えてもらえますか?
ありがとうございました
非常に簡単です。 AllowDrop
プロパティをTrue
に設定し、DragEnter
とDragDrop
イベントを処理するだけで、ドレープアンドドロップを有効にしてください。
DragEnter
イベントハンドラでは、データがDataFormats
クラスを使用して必要なタイプかどうかを確認できます。
DragDrop
イベントハンドラでは、DataEventArgs
のData
プロパティを使用して実際のデータを受け取ります。
例:
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
これは(ドラッグ&ドロップが動作しない場合は、管理者モードでのVisual Studioを実行しているので、それができるという状態ので、ちょうどノートでWindows 7と私は信じている)。これは現在Windowsに設定されているUACレベルと関係があります。
本当に良い考えです(ただし、有効な回答の下にコメントとして追加する必要があります) – JCM