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


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

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

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
双击ListView 行,怎么不弹窗口?  发帖心情 Post By:2020/2/17 17:22:00 [显示全部帖子]

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


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
双击ListView 行,怎么不弹窗口?


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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 19:52:00 [显示全部帖子]

不知道怎么搞,能不能帮我改一下
目的是双击ListViewRow,然后会在窗口2,TextBox显示对应行的数据,并且可以更改,
TextBox1 = Tables(n).Current(7) & "" & Tables(n).Current(5)

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 20:18:00 [显示全部帖子]

问题是双击ListView行,没有Forms("窗口2").Open()

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 20:50:00 [显示全部帖子]

实列已经上传,你帮我看一下,
问题是双击ListView行,没有Forms("窗口2").Open()
如果像下面这样的话,TextBox显示不正确
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)
    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

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 20:54:00 [显示全部帖子]


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

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 20:58:00 [显示全部帖子]

一楼的打不开“窗口2”

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:09:00 [显示全部帖子]

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

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/2/17 21:48:00 [显示全部帖子]


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

 回到顶部
总数 15 1 2 下一页