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


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

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

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


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

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

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
沦落深蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
沦落深蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
沦落深蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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")


 回到顶部
帅哥哟,离线,有人找我吗?
沦落深蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:幼狐 帖子:170 积分:1195 威望:0 精华:0 注册:2016/2/21 18:26:00
  发帖心情 Post By:2016/10/25 22:07:00 [显示全部帖子]

谢谢老师,又长知识了图片点击可在新窗口打开查看

 回到顶部