以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  焦点问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=84283)

--  作者:douglas738888
--  发布时间:2016/4/27 16:03:00
--  焦点问题
请教老师,

表B(子)与表A(父)形成关联,我用焦点在表B的CurrentChanged里面设置代码,想实现选择表B当前行通过索引号与表C同步焦点,

以下代码,在表与表之间能形成焦点选择,但是把表B放在窗口1,把表C以电子表格的形式设计在窗口2(该窗口无TABLE控件),就无法完成焦点功能

\'If Forms("表C").Opened()    \'如果不用此行代码,表格与表格之间能实现焦点功能
If e.Table.Current Is Nothing Then 
 Return \'则返回
End If
Dim wz As Integer
Dim dr As DataRow
dr = DataTables("表C").Find("[索引号] = \'" & e.Table.Current("索引号") & "\'")
If dr IsNot Nothing Then
    wz = Tables("表C").FindRow(dr)
    If wz >= 0 Then
        Tables("表C").Position = wz
      \' End If
    End If
End If

--  作者:大红袍
--  发布时间:2016/4/27 16:06:00
--  
 你窗口2的是不是副本表?副本表的表名是 窗口2_Table1
--  作者:douglas738888
--  发布时间:2016/4/27 18:39:00
--  
窗口2不是副本,是正本。

上述代码能实现焦点控制了,有一个问题,我经过多次测试,表B新增加的行输入数据后,光标在当前行是无法焦点到表C,需要点击其他行后再回到刚增加的行,焦点才能与表C对应,这样是否正常。
--  作者:大红袍
--  发布时间:2016/4/27 19:41:00
--  

 如果你想修改了 索引号 后也进行定位,你可以在DataColChanged事件,也写定位的代码。