Foxtable(狐表)用户栏目专家坐堂 → 内存不足


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

主题:内存不足

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


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
内存不足  发帖心情 Post By:2015/2/12 13:15:00 [只看该作者]

建立 listview  的时候, 提示

图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图20150212131321.png
图片点击可在新窗口打开查看


不是每次都提示,重新运行一次,就没有问题了。



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


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By:2015/2/12 13:16:00 [只看该作者]

listview 里面显示的是图片  


图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图20150212131453.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By:2015/2/12 13:18:00 [只看该作者]

代码如下 

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim tb As Table = e.Form.Controls("Table1").Table
Dim icon As Icon

lvw.StopRedraw

lvw.Groups.Clear() '清除原来的分组
lvw.Columns.Clear() '清除原来的列
lvw.Rows.Clear() '清除原来的行
lvw.Images.Clear() '清除原来的图片
lvw.View = ViewMode.LargeIcon '用大图标模式
lvw.Images.LargeSize = New Size(48,48)
lvw.AutoResizeColumns()

'lvw.View = ViewMode.Details '设置显示模式为详细内容
'lvw.GridLines = True '显示网格线
If FileSys.DirectoryExists(ProjectPath & e.Form.name)
    FileSys.DeleteDirectory(ProjectPath & e.Form.Name,2,2)
End If
FileSys.CreateDirectory(ProjectPath & e.Form.Name)


'////////////////////设置图片//////////////////
For Each r As Row In tb.Rows
    Select Case  r("类型")
        Case  "文件夹"
            lvw.Images.AddLargeImage("文件夹",ProjectPath & "Images\1064.ico")
        Case  ".jpg"
            'lvw.Images.AddLargeImage(r("文件全名"),r("文件全名"))
             lvw.Images.AddLargeImage(r("_identify"),r("文件全名"))
        Case Else
            
            Dim nm As String = r("类型").TrimStart(".")
            If FileSys.FileExists(ProjectPath & e.Form.name & "\" & nm & ".png") Then
             lvw.Images.AddLargeImage(r("类型"),ProjectPath & e.Form.name & "\" & nm & ".png")
            Else
                icon = System.Drawing.Icon.ExtractAssociatedIcon(r("文件全名"))
                icon.ToBitmap().Save(ProjectPath & e.Form.name & "\" & nm & ".png")
                lvw.Images.AddLargeImage(r("类型"),ProjectPath & e.Form.name & "\" & nm & ".png")
            End If
    End Select
Next

Dim Multi As String = tb.DataTable.GetComboListString("类型")
Dim Values() As String
Values = Multi.split("|")

For Index As Integer = 0 To Values.Length - 1
    Dim lvwg As WinForm.ListViewGroup = lvw.Groups.Add()
    lvwg.Name= Values(Index)
    lvwg.text =Values(Index).TrimStart(".")
    
    Dim filter As String = iif(tb.filter > "", tb.filter , "1=1")
    
        For Each dr As DataRow In tb.DataTable.Select( "(" & Filter & ") And 类型 = '" & Values(Index) & "'" )

            Dim it As WinForm.ListViewRow =lvw.Rows.Add()
            it.Text = dr("名称")
            it.name = dr("文件全名")
            it.Group =  Values(Index)  '归纳分组
            Select Case  dr("类型")
                Case  "文件夹"
                    it.ImageKey =  "文件夹"
                Case  ".jpg"
                    it.ImageKey = dr("_identify") '  dr("文件全名")
                Case Else
                    it.ImageKey =  dr("类型")
            End Select
            
            it.Font = New Font("Noto Sans S Chinese Regular",8, FontStyle.regular)
            'it.ToolTipText = dr("功能概述")
            
        Next
    
Next

lvw.ResumeRedraw

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/12 14:05:00 [只看该作者]

图片太大了,弄小一点吧  或者个弄一些缩略图.

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/12 14:16:00 [只看该作者]

1,图片太大、图片太多

 

2,分别注释掉部分代码,看是哪里出问题


 回到顶部