エクスプローラからDrag&Dropされたファイルのファイル名(フルパス)を取得する方法です。
次の例ではリストボックスコントロールListBox1にDrag&Dropされたすべてのファイルのファイル名を表示しています。ListBox1のAllowDropプロパティをTrueにしてください。
Private Sub ListBox1_DragEnter(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles ListBox1.DragEnter 'コントロール内にドラッグされたとき実行される If e.Data.GetDataPresent(DataFormats.FileDrop) Then 'ドラッグされたデータ形式を調べ、ファイルのときはコピーとする e.Effect = DragDropEffects.Copy Else 'ファイル以外は受け付けない e.Effect = DragDropEffects.None End If End Sub Private Sub ListBox1_DragDrop(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles ListBox1.DragDrop 'コントロール内にドロップされたとき実行される 'ドロップされたすべてのファイル名を取得する Dim fileName As String() = CType( _ e.Data.GetData(DataFormats.FileDrop, False), _ String()) 'ListBoxに追加する ListBox1.Items.AddRange(fileName) End Sub
//ListBox1のDragEnterイベントハンドラ private void ListBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { //コントロール内にドラッグされたとき実行される if (e.Data.GetDataPresent(DataFormats.FileDrop)) //ドラッグされたデータ形式を調べ、ファイルのときはコピーとする e.Effect = DragDropEffects.Copy; else //ファイル以外は受け付けない e.Effect = DragDropEffects.None; } //ListBox1のDragDropイベントハンドラ private void ListBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { //コントロール内にドロップされたとき実行される //ドロップされたすべてのファイル名を取得する string[] fileName = (string[]) e.Data.GetData(DataFormats.FileDrop, false); //ListBoxに追加する ListBox1.Items.AddRange(fileName); }