下記のサンプルコードをWEBサイトで見つけたので
ListBox1というところをTextBox1と直して
テキストボックスにファイルのフルパスが出るように
したかったのですが、Listbox1だと正常なのですが、
TextBox1に変更すると動作しなくなってしまいます。
最後の部分の
ListBox1.Items.AddRange(e.Data.GetData(DataFormats.FileDrop))は
TextBox1.Text=e.Data.GetData(DataFormats.FileDrop)
に変更してあります。
正常に動作するにはどこを直したらよいか教えて頂きたいです。
宜しくお願いします。m(__)m
---------------------------------------------------
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
'DragEnterイベントで、取得した情報を追加
ListBox1.Items.AddRange(e.Data.GetData(DataFormats.FileDrop))
End Sub
VB.NETですよね。
まず、
TextBox1.AllowDrop = True
になってますか?
あとは、
Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop
TextBox1.Text = e.Data.GetData(DataFormats.FileDrop)(0) 'String[]になる
End Sub
Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter
If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
でいけるはずですが
お礼
できました。 どこかの設定が間違っていたようで、 全部消して頂いた回答をコピペしたらOKでした。 ありがとうございます!