以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]ListView支持拖拽显示图片吗  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117508)

--  作者:jyh7081
--  发布时间:2018/4/13 16:56:00
--  [求助]ListView支持拖拽显示图片吗
先把窗口中的ListView控件绑定数据表的[图片]列;当鼠标向ListView控件拖拽图片文件时,获取图片路径及名称;
数据表增加一行,[图片]列取文件名,再自动复制一份图片文件到项目Attachments下。最后生成ListView,这种想法是否可行?

以前有个向面板拖拽的例子,能否修改为向ListView控件拖拽
请老师指教,谢谢!


\'全局代码
Public Sub picture_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
Dim paths As object() = e.Data.GetData(Windows.Forms.DataFormats.FileDrop)
For Each path As object In paths
    msgbox(path)
Next
sender.Cursor = System.Windows.Forms.Cursors.IBeam
End Sub

Public Sub picture_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
If (e.Data.GetDataPresent(Windows.Forms.DataFormats.FileDrop)) Then
    e.Effect = Windows.Forms.DragDropEffects.Link
    sender.Cursor = System.Windows.Forms.Cursors.Arrow
Else
    e.Effect = Windows.Forms.DragDropEffects.None
End If
End Sub

\'--------------------------------
窗口AfterLoad

Dim t As windows.Forms.panel = e.Form.Controls("panel1").basecontrol
t.AllowDrop = True

AddHandler t.DragDrop, AddressOf picture_DragDrop
AddHandler t.DragEnter, AddressOf picture_DragEnter

--  作者:有点甜
--  发布时间:2018/4/13 17:19:00
--  

Dim t As windows.Forms.panel = e.Form.Controls("panel1").basecontrol

 

改成

 

Dim t As windows.Forms.listview = e.Form.Controls("listview1").basecontrol

 

然后,在DragDrop事件里面写代码处理你的逻辑即可。


--  作者:jyh7081
--  发布时间:2018/4/14 20:01:00
--  
找不到DragDrop事件;还存在几个问题:
1、一部分代码写到全局代码里了,请老师看看是否合适?
2、生成listview的代码写在了datacolchanged事件和窗口的AfterLoad事件里;
已经设置了图片可移动和接收移动的代码,但是移动不了;
3、“删除图片”按钮怎样同时删除数据表中的行,与数据表同步的代码也没运行?
谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:listview拖放测试.rar



--  作者:有点甜
--  发布时间:2018/4/15 12:12:00
--  

1、你测试拖动后有什么问题?没有增加行等操作?

 

2、拖动图片建立,不触发代码?

 

3、参考 http://www.foxtable.com/webhelp/scr/2782.htm