以文本方式查看主题

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

--  作者:scott518
--  发布时间:2014/7/9 21:20:00
--  表焦点的问题

主窗口为Main,在其下设计了多个sql查询的并列窗口,窗口afterload中的代码:

Dim dr As DataRow
dr = DataTables("QtbSet").Find("WinN = \'" & e.Form.name & "\'")
If dr IsNot Nothing Then
    If dr("ldTreeDef") > "" Then
        QueryTrcol = dr("ldTreeDef") \'将默认查询目录树列赋予全局变量
        Functions.Execute("QueryTree",dr("ldTreeDef")) \'传递默认加载列生成目录树
    End If
End If
Tables(e.Form.Name & "_Table1").Focus  \'将焦点移动到表上

 

最后一句就是想窗口打开后把焦点定位在第一个表上,但是却没有效果,用msgbox(Currenttable.Name)

为什么还是显示的Main,而不是打开窗口的那个表?

 

谢谢!


--  作者:有点甜
--  发布时间:2014/7/9 21:25:00
--  

试试改成这样

 

e.Form.Controls("Table1").Select

e.Form.Controls("Table1").Table.Focus

e.Form.Controls("Table1").Table.Select(-1,0)

 


--  作者:scott518
--  发布时间:2014/7/9 22:11:00
--  

谢谢有点甜老师,只有

e.Form.Controls("Table1").Select  这种方式可以,

其他两种和我自己用的那种都不可以,可以解释一下为什么吗?有时感觉很难理解。


--  作者:有点甜
--  发布时间:2014/7/9 22:14:00
--  
必须模拟控件获取到焦点,因为每个table都是可以Focus的,触发不了currentTable的变化。