Foxtable(狐表)用户栏目专家坐堂 → [求助]出现个怪异的问题,不知道怎么回事(已解决)


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

主题:[求助]出现个怪异的问题,不知道怎么回事(已解决)

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9597 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 11:23:00 [只看该作者]

以下是引用有点蓝在2016/10/29 11:18:00的发言:
代码全部注释,一段段启用,看是那一段代码问题。

表格失去焦点,然后又获取焦点,就算行不变也会触发CurrentChanged的

重新获取焦点时,偶尔也会触发两次


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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/29 11:35:00 [只看该作者]

应该都是代码互相影响导致的

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9597 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 13:47:00 [只看该作者]

以下是引用浙江仔在2016/10/29 11:00:00的发言:
注释了CurrentChanged代码,好像没有这个问题了,能帮忙看下,哪个代码会引起当前行变动么?

还有一个函数代码:Functions.Execute("SearchEntName",uuid)
Dim uuid As String =args(0)
Dim XMLH As Object
XMLH = CreateObject("Microsoft.XMLHTTP")
XMLH.open("GET", "http://XXXXXXX/enterpriseId="& uuid, True)   '获得实时信息
XMLH.send(Nothing)
Do While XMLH.readyState <> 4
    Application.DoEvents
Loop

'把数据json数据转化成对象
Dim json As String = XMLH.responseText
Dim ScriptControl As Object, data  As Object, JscriptCode As String
JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", json)
End With

If data.total=0 Then
    
    For Each o As object In data.data
        If o.enterpriseName<>"" Then
            Vars("V_entName")=o.enterpriseName
            Vars("V_entpdName")=o.proddistName
        End If
    Next
Else
    Return "未查询到企业!"
End If

确实跟这个代码有关,注释了就不会跳行


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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9597 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 14:29:00 [只看该作者]

经测试,鼠标焦点从主表(单元格)离开,如果是直接点窗体关联表,那么跳行的几率大,如果先点窗体,再点窗体关联表,那么不会跳行了。

还有,鼠标焦点从主表单元格离开,如果直接点击窗体关联表的空白处(如图无数据行处),那么窗体焦点获取会失败,需要鼠标再点击一下,才能获取焦点
在这个过程中,窗体没有获取焦点的时候,就会发生跳行现象



图片点击可在新窗口打开查看此主题相关图片如下:qq图片201621029143011.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/10/29 14:32:03编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9597 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 14:34:00 [只看该作者]

点击关联表无数据行的地方时,窗体没有获取焦点

相当于鼠标点击了窗体关联表下面主表的数据行,主表数据也就跳到鼠标点击的位置下方这行

 

 

测试了空白项目,不存在这个问题,那么就跟代码有关系了

而且点窗体空白处都这样的情况,不光是关联表的无数据行地方

 

能指点迷津么?

 

跟这个代码肯定是有关系的了,导致了窗体焦点获取失败

Dim XMLH As Object
XMLH = CreateObject("Microsoft.XMLHTTP")
XMLH.open("GET", "http://XXXXXXX/enterpriseId="& uuid, True)   '获得实时信息
XMLH.send(Nothing)
Do While XMLH.readyState <> 4
    Application.DoEvents
Loop
 
或者跟这个关系很大了,CurrentChanged触发两次
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=92232
[此贴子已经被作者于2016/10/29 14:43:01编辑过]

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/29 15:07:00 [只看该作者]

CurrentChanged确实会触发两次,只能想其它办法绕过这个问题了

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9597 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2016/10/29 15:23:00 [只看该作者]

以下是引用有点蓝在2016/10/29 15:07:00的发言:
CurrentChanged确实会触发两次,只能想其它办法绕过这个问题了
只好在CurrentChanged代码中加个验证,如果是同一行第二次触发,那就直接退出,好像问题解决了

 回到顶部
总数 17 上一页 1 2