Foxtable(狐表)用户栏目专家坐堂 → [求助]如何实现双击表时,将当前行数据加入到窗口的ListView中


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

主题:[求助]如何实现双击表时,将当前行数据加入到窗口的ListView中

美女呀,离线,留言给我吧!
cherryjing
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1127 威望:0 精华:0 注册:2014/5/20 12:22:00
[求助]如何实现双击表时,将当前行数据加入到窗口的ListView中  发帖心情 Post By:2015/9/14 11:13:00 [只看该作者]

我在全局的表事件DoubleClick中编写代码:

 

'如果是材料数据表
If e.Table.name.contains("_") Then
    '如果比较窗口被打开并可见
    If Forms("Form_ParametersCompare").visible Then


        AddMaterialToCompare()
        e.Cancel = True '禁止进入编辑状态
       
    End If
Else
    e.Cancel = True '禁止进入编辑状态

end if

 

 函数AddMaterialToCompare()如下:

 

Sub AddMaterialToCompare()
Dim i As Integer
Dim lvw As WinForm.ListView = Forms("Form_ParametersCompare").Controls("lvw_Compare")
Dim dr As DataRow = Maintable.current.DataRow '从数据表中提取数据

Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
messagebox.Show(MainTable.Name)
For i = 0 To lvw.Columns.count - 1'逐列取值
    vr(lvw.Columns(i).name) = dr(lvw.Columns(i).name)
Next
vr.Tag= dr '将DataRow赋值给ListViewRow的Tag属性,将二者联系起来
End Sub

执行发现,双击时虽然表不能被编辑,但listview也没有加入数据,甚至连messagebox也没有show出东西来,感觉AddMaterialToCompare根本就没有被执行,请教版主是什么问题,该如何解决?


 回到顶部
美女呀,离线,留言给我吧!
cherryjing
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1127 威望:0 精华:0 注册:2014/5/20 12:22:00
  发帖心情 Post By:2015/9/14 11:15:00 [只看该作者]

补充一点,那两个if条件都是满足的

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/14 11:29:00 [只看该作者]

1、全局doubleClick事件是否开启

 

2、加入msgbox看是否进入事件

 

msgbox(e.table.Name)

If e.Table.name.contains("_") Then
    '如果比较窗口被打开并可见

msgbox(Forms("Form_ParametersCompare").Opened)
    If Forms("Form_ParametersCompare").Opened Then

        AddMaterialToCompare()
        e.Cancel = True '禁止进入编辑状态
    End If
Else
    e.Cancel = True '禁止进入编辑状态


End If

 


 回到顶部
美女呀,离线,留言给我吧!
cherryjing
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1127 威望:0 精华:0 注册:2014/5/20 12:22:00
  发帖心情 Post By:2015/9/14 11:42:00 [只看该作者]

谢谢版主,原来要在项目的Initialize中添加代码:

For Each dt As DataTable In DataTables
    dt.GlobalHandler.
DoubleClick = True
Next


 回到顶部