Foxtable(狐表)用户栏目专家坐堂 → [求助]关于图片列在LISTVIEW中显示问题


  共有3057人关注过本帖树形打印复制链接

主题:[求助]关于图片列在LISTVIEW中显示问题

帅哥哟,离线,有人找我吗?
沦落深蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:170 积分:1195 威望:0 精华:0 注册:2016/2/21 18:26:00
[求助]关于图片列在LISTVIEW中显示问题  发帖心情 Post By:2016/10/23 13:05:00 [只看该作者]

对于图片列,存放目录和来源目录都已设置,通过代码自动将指定文件夹内的图片添加到图片列后,在TABLE中可以正常打开看见图片内容,

但是LISTVIEW在引用该图片时却是什么都没有,是空的,请问可能的原因~~~~图片点击可在新窗口打开查看

 


 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2016/10/23 13:13:00 [只看该作者]

可以的,不成功最好上例子

 回到顶部
帅哥哟,离线,有人找我吗?
沦落深蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:170 积分:1195 威望:0 精华:0 注册:2016/2/21 18:26:00
  发帖心情 Post By:2016/10/23 14:13:00 [只看该作者]

请问是不是图片太大的在LISTVIEW中就显示不了~~~之前的确没问题,LISTVIEW显示图片时会自动缩放吗~~

 

还有就是,引用的图片有格式要求吗~~~

[此贴子已经被作者于2016/10/23 14:28:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/10/23 17:03:00 [只看该作者]

不成功,说明你的代码有误,通常是AddImage的时候,提供的图片路径或文件名有误。

 

图片格式一般没有要求,你可以用同样的图片,复制到某个目录,再复制一个foxtable自带的图片,用绝对路径测试一下,看看是否图片格式问题。

[此贴子已经被作者于2016/10/23 17:04:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
沦落深蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:170 积分:1195 威望:0 精华:0 注册:2016/2/21 18:26:00
  发帖心情 Post By:2016/10/25 20:21:00 [只看该作者]

老师~~~出现了以下图片所示的情况,同时转移到XP系统的电脑上发现有时显示图片有时又不显示图片,实在费解,程序比较复杂且基本已经完成,上次实例比较困难,

可能是什么原因呢

 


此主题相关图片如下:无标题.png
按此在新窗口浏览图片

代码我也算是比较了解了,也运用了好几次,几乎不可能有问题


Dim lvw As WinForm.ListView = e.Form.Controls("LV机械管理")
lvw.StopRedraw() '暂停绘制
lvw.Rows.Clear() '清除原来的行
lvw.Images.Clear() '清除原来的图片
lvw.View = ViewMode.Tile '显示模式为平铺
lvw.Images.LargeSize = New Size(100,120) '定义大图标尺寸
lvw.TitleSize = New Size(200,150)  '设置平铺区域的大小
Dim cls() As String = {"装备名称","装备型号","装备代号","装备编号","接装日期","装备状态","蓄电池型号"} '定义列名
For i As Integer = 0 To  cls.Length - 1  '增加列
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
    c.Name = cls(i) '指定列名
Next
For Each zh As String In DataTables("装备数据库").GetValues("机械分类",,"序号") '增加分组
    Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()
    grp.Name = zh
    grp.Text = zh
Next
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.ToolTipText = dr("生产信息_生产厂家")  '设置此行的动态提示
    vr.ImageKey = Key '设置图片键值
    vr.Group = dr("机械分类")
    vr.Font = New Font("微软雅黑",8)
    For Each cl As String In cls '逐列取值
        vr(cl) = dr(cl)
    Next
    vr.Tag = dr
Next
lvw.ResumeRedraw() '恢复绘制

 

 


此主题相关图片如下:无标题2.png
按此在新窗口浏览图片
[此贴子已经被作者于2016/10/25 20:21:54编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110594 积分:562866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/25 20:31:00 [只看该作者]

上传例子不是让你把整个项目上传。把又问题的表(保留几行数据)、窗口和代码导出到一个新项目上传。学会做测试例子也是一种技能。

Dim Key As String = dr("图片") '获取此员工的照片文件
    lvw.Images.AddLargeImage(Key, Key) '添加照片,直接用文件名作为图片键值

上面的key应该是相对路径,改为绝对路径(图片在电脑中的完整路径D:\xxxx\xxx.jpg)试试

 回到顶部
帅哥哟,离线,有人找我吗?
沦落深蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:170 积分:1195 威望:0 精华:0 注册:2016/2/21 18:26:00
  发帖心情 Post By:2016/10/25 20:54:00 [只看该作者]

老师,经过测试的确是路径问题,如果不设置图片列的默认保存路径就能显示,

但是如果想将图片默认保存在   D:\foxtable项目\维修站信息管理系统(试用版)\Reports\1业务管理\机械图片管理

中为什么就显示不出来呢

 

这么修改依然不行,显示不出图片

lvw.Images.AddLargeImage(Key, "D:\foxtable项目\维修站信息管理系统(试用版)\Reports\1业务管理\机械图片管理\C-01.jpg")


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110594 积分:562866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/25 21:02:00 [只看该作者]

不设置图片列的默认保存路径就能显示说明图片应该在Attachments里,而不是在D:\foxtable项目\维修站信息管理系统(试用版)\Reports\1业务管理\机械图片管理


 回到顶部
帅哥哟,离线,有人找我吗?
沦落深蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:170 积分:1195 威望:0 精华:0 注册:2016/2/21 18:26:00
  发帖心情 Post By:2016/10/25 21:18:00 [只看该作者]

老师,图片路径问题解决了,方法是在key中增加了该路径,没有直接引用路径

Dim Key As String = ProjectPath & "Reports\1业务管理\机械图片管理\" & dr("图片")'

 

但是出现了一个问题:

out of memory

明明就几十张图片,加载的很慢,而且还容易内存溢出,图片是相机拍的jpg,大概1M多,是不是要处理过再放进去才好,图片大小对计算能力影响那么大吗

 

如何才能使LISTVIEW实现快速显示,求解

[此贴子已经被作者于2016/10/25 21:18:22编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110594 积分:562866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/25 21:22:00 [只看该作者]

图片是非常占资源的,不然为什么会有显卡这种玩意存在。

建议压缩使用缩略图显示
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=89637
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=84351

 回到顶部
总数 11 1 2 下一页