Foxtable(狐表)用户栏目专家坐堂 → 双击ListView 行,怎么不弹窗口?


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

主题:双击ListView 行,怎么不弹窗口?

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/17 21:07:00 [只看该作者]

1楼项目按2楼的说明改啊,窗口afterload事件,给每一个新增的行加上tag值啊

 vr.tag = dr

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:09:00 [只看该作者]

不是新增行,是双击显示窗口
RowActivate里的代码
[此贴子已经被作者于2020/2/17 21:09:37编辑过]

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/17 21:39:00 [只看该作者]

就是因为新增行的时候没有处理好,所以才导致双击显示窗口有问题呀!

流水线上任何一个环节出问题都会导致废品。代码也一样,从窗口启动开始,很多事件代码都有相关性的,前面没有处理好就好导致后面一系列的各种问题

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:44:00 [只看该作者]

以下是窗口1里的AfterLoad里的代码
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() '暂停绘制
lvw.View = ViewMode.Details  '显示模式为详细内容
lvw.GridLines = True '显示网格线
lvw.MultiSelect = False  '禁止选择多行
Dim gps() As  String  = {"bA","bB","bC"} '定义分组名称
Dim cls() As String = {"项目名称","规格","成份或质地","克重","门幅","单位","单耗","单价","金额","供应商"}  '指定要显示的各列
Dim wds() As Integer = {120,100,100,45,45,40,50,60,70,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 gp As String In gps
    Dim vg As WinForm.ListViewGroup = lvw.Groups.Add() '增加分组
    vg.Name = gp  '指定分组名称
    vg.Text = gp '指定分组标题
Next
For Each dr As DataRow In DataTables("表A").DataRows '从数据表中提取数据
   Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
Dim s As String = ""
For i As Integer = 5 To Tables("表A").Cols.Count - 1 
Dim hmc As  String
hmc = Tables("表A").Cols(i).Name
s = s & vbcrlf & hmc & ":" & dr(hmc)
Next
vr.ToolTipText = s.trim()
    For Each cl As String In cls '逐列取值
        vr("项目名称") = dr("面料名称")
        vr("规格") = dr("规格")
        vr("成份或质地") = dr("成份")
        If dr.IsNull("克重") Then
            vr("克重") = ""
        Else
            vr("克重") = dr("克重")
        End If
        If dr.IsNull("门幅") Then
            vr("门幅") = ""
        Else
            vr("门幅") = dr("门幅")
        End If
        vr("单位") = dr("计量单位")
        If dr.IsNull("单耗") Then
            vr("单耗") = ""
        Else
            vr("单耗") = dr("单耗")
        End If
        If dr.IsNull("单价") Then
            vr("单价") = ""
        Else
            vr("单价") = Format(dr("单价"),"n")
        End If
        If dr.IsNull("金额") Then
            vr("金额") = ""
        Else
            vr("金额") = Format(Round2(dr("金额"),2),"n")
        End If
        vr("供应商") = dr("供应商")
        vr.Group = "bA"
    Next
Next
For Each dr As DataRow In DataTables("表B").DataRows '从数据表中提取数据
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
Dim s As String = ""
For i As Integer = 5 To Tables("表B").Cols.Count - 1 
Dim hmc As  String
hmc = Tables("表B").Cols(i).Name
s = s & vbcrlf & hmc & ":" & dr(hmc)
Next
vr.ToolTipText = s.trim()
    For Each cl As String In cls '逐列取值
        vr("项目名称") = dr("辅料名称")
        vr("规格") = dr("规格")
        vr("成份或质地") = dr("辅料质地")
        If dr.IsNull("克重") Then
            vr("克重") = ""
        Else
            vr("克重") = dr("克重")
        End If
        If dr.IsNull("门幅") Then
            vr("门幅") = ""
        Else
            vr("门幅") = dr("门幅")
        End If
        vr("单位") = dr("计量单位")
        If dr.IsNull("单耗") Then
            vr("单耗") = ""
        Else
            vr("单耗") = dr("单耗")
        End If
        If dr.IsNull("单价") Then
            vr("单价") = ""
        Else
            vr("单价") = Format(dr("单价"),"n")
        End If
        If dr.IsNull("金额") Then
            vr("金额") = ""
        Else
            vr("金额") = Format(Round2(dr("金额"),2),"n")
        End If
        vr("供应商") = dr("供应商")
        vr.Group = "bB"
    Next
Next
For Each dr As DataRow In DataTables("涤式").DataRows '从数据表中提取数据
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
Dim s As String = ""
For i As Integer = 5 To Tables("涤式").Cols.Count - 1 
Dim hmc As  String
hmc = Tables("涤式").Cols(i).Name
s = s & vbcrlf & hmc & ":" & dr(hmc)
Next
vr.ToolTipText = s.trim()
    For Each cl As String In cls '逐列取值
        vr("项目名称") = dr("二次加工名称")
        vr("规格") = ""
        vr("成份或质地") = ""
        vr("克重") = ""
            vr("门幅") = ""
        vr("单位") = dr("计量单位")
            vr("单耗") = dr("数量")
        If dr.IsNull("单价") Then
            vr("单价") = ""
        Else
            vr("单价") = Format(dr("单价"),"n")
        End If
        If dr.IsNull("金额") Then
            vr("金额") = ""
        Else
            vr("金额") = Format(Round2(dr("金额"),2),"n")
        End If
        vr("供应商") = dr("供应商")
        vr.Group = "bC"
    Next
Next
lvw.ResumeRedraw() '恢复绘制

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:46:00 [只看该作者]

这个是ListView里RowActivate里的代码
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vr As WinForm.ListViewRow = lvw.Current '获取ListView的当前行
Dim dr As DataRow = vr.tag
Dim lr As WinForm.ListViewRow = e.Sender.Current
MessageBox.Show("你双击的是:" & lr.Text & "  " & lr.Group)
Dim n As  String = "表" & lr.Group.SubString(1,1)
Dim ps As Integer = Tables(n).FindRow(dr)
If ps >= 0 Then
    Tables(n).Position = ps
    Forms("窗口2").Open()
    Forms("窗口2").Controls("Label2").text = n
    Forms("窗口2").Controls("Label1").text = Tables(n).Current(5)
    For i As Integer = 8 To Tables(n).Cols.Count -1
        Dim lb As String = "bt" & Format(i-5,"00")
        Forms("窗口2").Controls("bt" & Format(01,"00")).text = Tables(n).Cols(5).Name & ":"
        Forms("窗口2").Controls("bt" & Format(02,"00")).text = Tables(n).Cols(6).Name & ":"
        Forms("窗口2").Controls(lb).text = Tables(n).Cols(i).Name & ":"
        Dim tb As String = "TextBox" & i-5
        Forms("窗口2").Controls("TextBox" & "1").Value = Tables(n).Current(7) & "" & Tables(n).Current(5)
        Forms("窗口2").Controls("TextBox" & "2").Value = Tables(n).Current(6)
        Forms("窗口2").Controls(tb).Value = Tables(n).Current(i)
    Next
End If

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:48:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:02.jpg
图片点击可在新窗口打开查看
这个是“窗口2”,里面没有代码

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:52:00 [只看该作者]

唯一可能发生这个问题的,会不会是列名不一样?但是我需要这样的

图片点击可在新窗口打开查看此主题相关图片如下:03.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:55:00 [只看该作者]

不是列名不一样的问题

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:56:00 [只看该作者]

我把实列发上来了,你帮我看看吧
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:lvw.foxdb


[此贴子已经被作者于2020/2/17 21:56:19编辑过]

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/17 21:58:00 [只看该作者]

还要怎么说呢,前面都没有给行的tag属性赋值,tag属性就是空的,RowActivate里面使用到肯定就出错咯

这个是ListView里RowActivate里的代码
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vr As WinForm.ListViewRow = lvw.Current '获取ListView的当前行
Dim dr As DataRow = vr.tag
……

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

……
Next
For Each gp As String In gps
    Dim vg As WinForm.ListViewGroup = lvw.Groups.Add() '增加分组
    vg.Name = gp  '指定分组名称
    vg.Text = gp '指定分组标题
Next
For Each dr As DataRow In DataTables("表A").DataRows '从数据表中提取数据
   Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
vr.tag = dr
Dim s As String = ""
For i As Integer = 5 To Tables("表A").Cols.Count - 1 
Dim hmc As  String
hmc = Tables("表A").Cols(i).Name
s = s & vbcrlf & hmc & ":" & dr(hmc)
Next
vr.ToolTipText = s.trim()
    For Each cl As String In cls '逐列取值
        vr("项目名称") = dr("面料名称")
        vr("规格") = dr("规格")
……

 回到顶部
总数 21 上一页 1 2 3 下一页