VB 文本框 文件拖拽 鼠标松开再显示路径
代码如下:PrivateSubTextBox1Pkg_DragOver(ByValsenderAsObject,ByValeAsSystem.Windows.Forms....
代码如下:
Private Sub TextBox1Pkg_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1Pkg.DragOver
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim files As String()
Try
files = CType(e.Data.GetData(DataFormats.FileDrop), String())
TextBox1Pkg.Text = files(files.Length - 1)
Catch ex As Exception
MessageBox.Show(ex.Message)
Return
End Try
End If
End Sub
但是显示效果是:用鼠标拖着文件从文本框上划过,文本框内就有了文件的路径。导致不小心就把其他文本框的内容改写成了这个文件的路径。想要实现拖着文件从文本框上划过,不获取文件路径,只有在文本框上松开鼠标,才获取文件路径。
请高手指点一下,谢谢 展开
Private Sub TextBox1Pkg_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1Pkg.DragOver
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim files As String()
Try
files = CType(e.Data.GetData(DataFormats.FileDrop), String())
TextBox1Pkg.Text = files(files.Length - 1)
Catch ex As Exception
MessageBox.Show(ex.Message)
Return
End Try
End If
End Sub
但是显示效果是:用鼠标拖着文件从文本框上划过,文本框内就有了文件的路径。导致不小心就把其他文本框的内容改写成了这个文件的路径。想要实现拖着文件从文本框上划过,不获取文件路径,只有在文本框上松开鼠标,才获取文件路径。
请高手指点一下,谢谢 展开
1个回答
展开全部
那你用DragOver干嘛,Over经过文本框上空就会触发,用DragDrop啊,释放时才触发
追问
用DragDrop,还用上面的代码,就没有效果了...
拜托指点一下代码
追答
除了设置TextBox1Pkg的AllowDrop为True,你还要增加:
Private Sub TextBox1Pkg_DragEnter(sender As Object, e As DragEventArgs) Handles TextBox1Pkg.DragEnter
e.Effect = DragDropEffects.Link '接收数据,启用拖放
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询