以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  listview 的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96067)

--  作者:jinzhengbe
--  发布时间:2017/2/12 13:11:00
--  listview 的问题
Dim lvw As WinForm.ListView = Forms("分类").Controls("ListView1")
Dim vls As String = ""
For Each vr As WinForm.ListViewRow In lvw.SelectedRows
      vls = vls & "," & vr("商品")
Next
vls = vls.Trim(",")
If vls > "" Then

 Dim vb As WinForm.ListViewRow = lvw.Current
  vb("lei")="aa"

Else
    MessageBox.show("你并没有选择任何国家!" )
End If

我想在 红色的部分实现
被选中的行的  lei= “bbb”
同时隐藏显示 被选中的图片  

请问应该怎么写
是写在button按钮里的
非常感谢。


--  作者:有点色
--  发布时间:2017/2/12 16:22:00
--  
Dim lvw As WinForm.ListView = Forms("分类").Controls("ListView1")
Dim vls As String = ""
Dim ls As new List(of Integer)
For Each vr As WinForm.ListViewRow In lvw.SelectedRows
    vls = vls & "," & vr("商品")
    If lei= "bbb" Then
        ls.add(vr.Index)
    End If
Next
vls = vls.Trim(",")
If vls > "" Then
    For i As Integer = ls.count-1 To 0 Step -1
        lvw.rows(i).Delete
    Next
Else
    MessageBox.show("你并没有选择任何国家!" )
End If

--  作者:jinzhengbe
--  发布时间:2017/2/12 18:13:00
--  
.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2015.12.22.1
错误所在事件:窗口,分类,Button2,Click
详细错误信息:
未将对象引用设置到对象的实例。



Dim lvw As WinForm.ListView = Forms("分类").Controls("ListView1")
Dim vls As String = ""
Dim ls As new List(of Integer)
For Each vr As WinForm.ListViewRow In lvw.SelectedRows
    vls = vls & "," & vr("商品")
这个地方我想要的是 e.datarow(“lei”)= “bbb”    and   隐藏当前图片。
    If lei= "bbb" Then
        ls.add(vr.Index)
    End If

Next
vls = vls.Trim(",")
If vls > "" Then
    For i As Integer = ls.count-1 To 0 Step -1
        lvw.rows(i).Delete
    Next
Else
    MessageBox.show("你并没有选择任何国家!" )
End If


[此贴子已经被作者于2017/2/12 18:50:27编辑过]

--  作者:有点色
--  发布时间:2017/2/12 18:16:00
--  

最后delete行了,不就是隐藏了行和图片吗?

 

 


--  作者:jinzhengbe
--  发布时间:2017/2/12 18:51:00
--  

[此贴子已经被作者于2017/2/12 18:52:10编辑过]

--  作者:jinzhengbe
--  发布时间:2017/2/12 18:58:00
--  
好像不行 显示下面的错误




.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2015.12.22.1
错误所在事件:窗口,分类,Button2,Click
详细错误信息:
未将对象引用设置到对象的实例。




--  作者:有点色
--  发布时间:2017/2/12 19:50:00
--  

改成

 

    For i As Integer = ls.count-1 To 0 Step -1
        lvw.rows(ls(i)).Delete
    Next


--  作者:jinzhengbe
--  发布时间:2017/2/12 23:10:00
--  
还是显示同样的错误



先点button3

在点button2

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


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

图片点击可在新窗口打开查看此主题相关图片如下:11111111.png
图片点击可在新窗口打开查看
如图,第5行的图片都被选中。
点button2后 

1  这5个图片对应的行的 lei列的值 =ccc
2  这5个图片在界面上隐藏(不代表要删除数据)



--  作者:有点色
--  发布时间:2017/2/12 23:59:00
--  

button3

 

Dim lvw As WinForm.ListView = Forms("分类").Controls("ListView1")
lvw.StopRedraw() \'暂停绘制
lvw.Rows.Clear() \'清除原来的行
lvw.Images.Clear() \'清除原来的图片
lvw.View = ViewMode.Tile \'显示模式为平铺
lvw.Images.LargeSize = New Size(65,75) \'定义大图标尺寸
lvw.TitleSize = New Size(150,90)  \'设置平铺区域的大小
Dim cls() As String = {"cs1","cs2","cs3"} \'定义列名
For i As Integer = 0 To  cls.Length - 1  \'增加列
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
    c.Name = cls(i) \'指定列名
Next
Dim count As Integer = 0 \'测试
For Each dr As DataRow In DataTables("商品").Select("") \'从数据表中提取数据
    count += 1
    If count > 10 Then Exit For \'测试
    Dim Key As String = ProjectPath & "images\\aaa\\" & dr("ppp")\'
    \' Dim Key As String = dr("ppp") \'获取此员工的照片文件
    lvw.Images.AddLargeImage(Key, Key) \'添加照片,直接用文件名作为图片键值
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    vr.ToolTipText = dr("cn_name")  \'设置此行的动态提示
    vr.ImageKey = Key \'设置图片键值
    For Each cl As String In cls \'逐列取值
        vr(cl) = dr(cl)
    Next
    vr.tag = dr
Next
lvw.ResumeRedraw() \'恢复绘制

 

 

-------------------------------------------------------------


button2

 

Dim lvw As WinForm.ListView = Forms("分类").Controls("ListView1")
Dim vls As String = ""
Dim ls As new List(of Integer)
For Each vr As WinForm.ListViewRow In lvw.SelectedRows
    vls = vls & "," & vr.tag("id")
    If vr.tag("lei")= "bbb" Then
        ls.add(vr.Index)
    End If
Next
vls = vls.Trim(",")
If vls > "" Then
    For i As Integer = ls.count-1 To 0 Step -1
        lvw.rows(ls(i)).Delete
    Next
Else
    MessageBox.show("你并没有选择图!" )
End If

 

[此贴子已经被作者于2017/2/12 23:59:23编辑过]

--  作者:jinzhengbe
--  发布时间:2017/2/13 9:06:00
--  
非常感谢,可以了。

button3 我想分页显示可以实现么?
按照帮助在afterload里加了代码 好像不行,还望多多指点
[此贴子已经被作者于2017/2/13 9:08:02编辑过]