以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  怎么让listview不显示当前被选中的行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=98698)

--  作者:jinzhengbe
--  发布时间:2017/4/5 14:11:00
--  怎么让listview不显示当前被选中的行
怎么让listview不显示当前被选中的行

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170405150746.png
图片点击可在新窗口打开查看
如果 用listview 做了一个下拉窗口

怎么才能在才能在下拉窗口中隐藏当前行能
(下来内容都是当前表的内容,包括当前行)

listview的代码如下

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() \'暂停绘制
lvw.Rows.Clear() \'清除原来的行
lvw.Images.Clear() \'清除原来的图片
\'lvw.View = ViewMode.SmallIcon 
lvw.CheckBoxes=True
\'lvw.View = ViewMode.Tile \'显示模式为平铺
lvw.view = ViewMode.LargeIcon
lvw.Images.LargeSize = New Size(100,100) \'定义大图标尺寸
lvw.TitleSize = New Size(150,120)  \'设置平铺区域的大小
Dim cls() As String = {"ppp","cn_name"} \'定义列名
For i As Integer = 0 To  cls.Length - 1  \'增加列
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
    c.Name = cls(i) \'指定列名
Next

For Each dr As DataRow In DataTables("商品").Select("[gongxiang] =1") \'从数据表中提取数据

   \' Dim Key As String = ProjectPath & "images\\aaa\\" & dr("ppp")\'
      Dim Key As String = "e:\\as2\\" & 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() \'恢复绘制

--  作者:有点蓝
--  发布时间:2017/4/5 15:16:00
--  
不显示当前被选中的行是什么意思?没有看明白
--  作者:jinzhengbe
--  发布时间:2017/4/5 15:48:00
--  

假设表格中红色行开始 向下6行分别对应 下拉框中的6个图片

表格里的 红色行对应的图片是  下拉框里的第一个图片 依次类推

当选中红色行的时候,下拉框中不显示第一个图片

选中红色行下面的行 下拉框不显示第二个图片

表格和listview绑定的都是同一个数据表。

所以当图片的id 和当前行的id 相同时 

在下拉框中隐藏表格中 被选中的行id 对应的图片。



--  作者:有点色
--  发布时间:2017/4/5 16:22:00
--  

 加上判断

 

If dr("id") <> Tables("表A").Current("id") Then

 

 

 

End If


--  作者:jinzhengbe
--  发布时间:2017/4/5 20:58:00
--  
怎么隐藏呢?因为当前行是隐藏的。换行后还是要显示的。

listview不是很懂,帮助已经翻了10遍了。



--  作者:有点色
--  发布时间:2017/4/5 21:13:00
--  

For Each dr As DataRow In DataTables("商品").Select("[gongxiang] =1") \'从数据表中提取数据
   
    If dr("id") <> Tables("表A").Current("id") Then
        \' Dim Key As String = ProjectPath & "images\\aaa\\" & dr("ppp")\'
        Dim Key As String = "e:\\as2\\" & 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
    End If
Next


--  作者:jinzhengbe
--  发布时间:2017/4/6 16:25:00
--  
经过试验  没有发现有什么区别啊?

就第一行选择的时候会隐藏当前列。

第二行开始又是原样啊

--  作者:有点色
--  发布时间:2017/4/6 16:30:00
--  
 你的代码写在那个事件?表名有没有写对?