以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]ListView 拖拽代码冲突  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=127615)

--  作者:天一生水
--  发布时间:2018/11/18 10:41:00
--  [求助]ListView 拖拽代码冲突
如图,希望ListView支持拖拽放入图片,并支持ListView内拖拽移动位置。

但是在窗口AfterLoad中1和2代码并存时,第2段代码就不起作用了;注销代码1,代码2运行没问题,请老师帮助看一下,是哪里的问题?
谢谢!

\'1、拖拽图片至ListView
Dim t1 As windows.Forms.listview = e.Form.Controls("ListView1").basecontrol
t1.AllowDrop = True
\'t.HoverSelection = True   \'鼠标移动选中行
AddHandler t1.DragDrop, AddressOf picture_DragDrop
AddHandler t1.DragEnter, AddressOf picture_DragEnter
\'-------------------------------------

\'2、ListView拖拽移动
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.AllowDrag = True \'允许拖动行
lvw.AllowDrop = True \'允许接收拖动过来的行
lvw.StopRedraw() \'暂停绘制
lvw.Rows.Clear() \'清除原来的行
lvw.Images.Clear() \'清除原来的图片
lvw.View = ViewMode.LargeIcon \'显示模式为 大图标
lvw.Images.LargeSize = New Size(70,99) \'定义大图标尺寸
For Each dr As DataRow In DataTables("图片列表").DataRows \'从数据表中提取数据
    Dim Key As String = dr("文件名") \'获取此员工的照片文件
    lvw.Images.AddLargeImage(Key, Key) \'添加照片,直接用文件名作为图片键值
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    vr.Text = dr("文件名")  \'设置标题
    vr.ImageKey = Key \'设置图片键值
Next
lvw.ResumeRedraw() \'恢复绘制



图片点击可在新窗口打开查看此主题相关图片如下:image 00.jpg
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试拖拽.foxdb

--  作者:有点甜
--  发布时间:2018/11/18 23:18:00
--  
交换两段代码位置
--  作者:天一生水
--  发布时间:2018/11/20 20:16:00
--  
老师,我试了,还是不行。
--  作者:有点蓝
--  发布时间:2018/11/20 21:10:00
--  
全局代码

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 = e.AllowedEffect
End If
End Sub