Foxtable(狐表)用户栏目专家坐堂 → 目录树的闪烁为什么控制不了(上传了例子)


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

主题:目录树的闪烁为什么控制不了(上传了例子)

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
目录树的闪烁为什么控制不了(上传了例子)  发帖心情 Post By:2017/6/5 21:32:00 [显示全部帖子]

打开窗口时执行了一个函数统计目录树中的每个节点的可处理记录数,每点击一下节点目录树就会闪烁一次,反复查找就是下面这段代码导致的(注释掉就不闪)

Dim dr,dr2,dr4,dr8 As DataRow
dr2 = DataTables("TabFid").Find("wn = '" & winName & "' and winlb = 'flow'")  '仅流程表单才起作用
If dr2 IsNot Nothing Then
    Dim tr1 As WinForm.TreeView = Forms("导航").Controls("Tr_All")
    Dim nd As winform.treenode
    
    Dim cmd As New SQLCommand
    cmd.ConnectionName = Mydata
    Dim dt As DataTable
    Dim nm As Integer
    Dim flt As String

    msgbox(1)
    tr1.StopRedraw()
    
    Dim fids As String '定义一个流程编号集合
    For Each nd In tr1.AllNodes
        If nd.Name = winName Then '只遍历当前主表所在节点
            Dim drs8 As List(of DataRow)
            drs8 = DataTables("ftbSet").Se lect("tbN = '" & Mtb & "' and (sqRole Like " & Role_All & ")","Fid")
            If drs8.Count > 0 Then
                '---先集合用户有权处理的流程
                For Each dr8 In drs8
                    fids = fids & "," & dr8("Fid")
                Next
                fids = fids.trim(",") 
                If fids > "" Then
                    '---计算{事务提醒}中用户有权处理的待处理记录数()----------------------
                    flt = "单据名称 = '" & Mtb & "' And sys_Fbh In (" & fids & ") And ((sys_Fbh = 1 And (接收人 Like " & Role_swtx & " or 接收人 Like '%自动导入%')) or (sys_Fbh > 1 and (接收人 Like " & Role_swtx & ")))"
                    cmd.CommandText ="Se lect count(*) From 事务提醒 where " & flt                     nm = cmd.ExecuteScalar()
                    If nm > 0 Then
                        '---显示"待处理"记录数
                        nd.Text = nd.Name & "(" & nm & ")"
                    Else
                        nd.Text = nd.Name
                    End If
                End If
                Exit For
            End If
        End If
    Next

    tr1.ResumeRedraw()
    msgbox(2)
End If

上面代码上下都用了防止闪烁的代码,为什么还是会闪烁?

谢谢!
[此贴子已经被作者于2017/6/6 18:14:59编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/5 22:18:00 [显示全部帖子]


上面代码是在一个函数中,在导航的目录树(节点就是窗口名称)点击打开窗口后就调用这段代码生成当前所选节点表单的可处理记录数用括号显示在后面(5)就是,

现在就是点击报废单打开报废单窗口后导航这个目录树会闪烁一下,这个函数是完全打开窗口后最后才执行的.


[此贴子已经被作者于2017/6/6 18:16:01编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/5 22:51:00 [显示全部帖子]

 Forms(wn).show  '---(直到表样式及数据都加载后才让窗口显示成为当前活动窗口以避免屏幕闪烁)

 If Forms(wn).Controls.Contains("Tr_Flow") = True Then
    Forms("导航").Controls("Tr_All").StopRedraw
    Functions.Execute("Refresh_Cords")
    Forms("导航").Controls("Tr_All").ResumeRedraw
End If

这里也用了防止闪屏的,函数里也用了,分别把它取消测试也一样都会闪烁

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/5 23:45:00 [显示全部帖子]

一样的闪法

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/6 18:14:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树闪铄.rar


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


总算把例子做好了,请老师看下,当导航中的节点多时就更明显
谢谢!

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/6 21:09:00 [显示全部帖子]

老师,感觉你弄的这个和我原来那个差不多一样闪啊,关键是真正的目录树节点很多,闪烁的效果就明显得很

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/7 8:53:00 [显示全部帖子]

有点色老师,这个帮忙看下有没有其他好的办法,9楼上传了案例,谢谢!

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


加好友 发短信
等级:八尾狐 帖子:1925 积分:17344 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/7 17:49:00 [显示全部帖子]

还是不行,现在只好改成不统计导航节点上总的待处理记录数了,一计算那个就闪烁的很厉害

 回到顶部