listview如何根据类目标中的类名 来循环赋予图片名 精简代码【红色部分代码怎么精简呢?】
此主题相关图片如下:1.png
当前代码如下:
Forms("设备借用归还").StopRedraw
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() '暂停绘制
lvw.Rows.Clear() '清除原来的行
lvw.Images.Clear() '清除原来的图片
lvw.View = ViewMode.Tile '显示模式为大图标
lvw.Images.LargeSize = New Size(45,55) '定义大图标尺寸
lvw.TitleSize = New Size(150,90)
lvw.Images.AddLargeImage("笔记本", "e3.ico") '添加代表图标
lvw.Images.AddLargeImage("手机", "n1.ico") '添加代表图标
lvw.Images.AddLargeImage("打印机", "k1.ico") '添加代表图标
lvw.Images.AddLargeImage("记录仪", "f3.ico") '添加代表图标
lvw.Images.AddLargeImage("台式机", "e4.ico") '添加代表图标
lvw.Images.AddLargeImage("录音笔", "m4.ico") '添加代表图标
lvw.Images.AddLargeImage("摄像机", "r6.ico") '添加代表图标
lvw.Images.AddLargeImage("照相机", "r9.ico") '添加代表图标
lvw.Images.AddLargeImage("同录设备", "31.ico") '添加代表图标
lvw.Images.AddLargeImage("屏蔽", "e2.ico") '添加代表图标
Dim cls() As String = {"设备标题","用户名","设备状态","记录时间"} '定义列名
Dim wds() As Integer = {100,100,150,100} '定义列宽
For i As Integer = 0 To cls.Length - 1
Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
c.Name = cls(i) '指定列名
c.Text = cls(i) '指定标题,这里标题和列名相同
c.Width = wds(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
'Tables("设备信息").Filter=""
Tables("设备信息").Filter="设备状态='借出'"
For Each dr As Row In Tables("设备信息").Rows '从数据表中提取数据
Dim vr As WinForm.ListViewRow = lvw.Rows.Add() '增加一行
For Each cl As String In cls '逐列取值
vr(cl) = dr(cl)
Next
vr.Text = dr("设备型号") '设置标题
If dr("设备属性") = "笔记本" Then '设置分组
vr.ImageKey = "笔记本"
Else If dr("设备属性") = "记录仪" Then
vr.ImageKey = "记录仪"
Else If dr("设备属性") = "手机" Then
vr.ImageKey = "手机"
Else If dr("设备属性") = "打印机" Then
vr.ImageKey = "打印机"
Else If dr("设备属性") = "台式机" Then
vr.ImageKey = "台式机"
Else If dr("设备属性") = "录音笔" Then
vr.ImageKey = "录音笔"
Else If dr("设备属性") = "摄像机" Then
vr.ImageKey = "摄像机"
Else If dr("设备属性") = "照相机" Then
vr.ImageKey = "照相机"
Else If dr("设备属性") = "同录设备" Then
vr.ImageKey = "同录设备"
Else If dr("设备属性") = "屏蔽" Then
vr.ImageKey = "屏蔽"
End If
vr.Group = dr("设备类别") '指定所属分组
vr.Tag= dr '将DataRow赋值给ListViewRow的Tag属性,将二者联系起来
Next
lvw.ResumeRedraw() '恢复绘制
Functions.Execute("设备借用归还统计")
Forms("设备借用归还").ResumeRedraw