Foxtable(狐表)用户栏目专家坐堂 → 用了StopRedraw点击目录树节点时卡死的问题


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

主题:用了StopRedraw点击目录树节点时卡死的问题

帅哥,在线噢!
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
用了StopRedraw点击目录树节点时卡死的问题  发帖心情 Post By:2017/10/7 19:06:00 [只看该作者]

因为某种条件禁止勾选目录树节点,用了下面的代码在勾选后立即取消勾选
'e.Form.StopRedraw()
'tr1.StopRedraw()
'tr2.StopRedraw()
.......
If e.Node.Checked = True Then
    e.Node.Checked = iif(e.node.checked,False,True)  '恢复复选状态
   'e.Node.Checked = false  '用这句结果也是一样
    MessageBox.Show("只有选中按部门角色设置权限时才能勾选表单或流程!","提示")
    Return
End If

If e.Node.Checked = false Then
msgbox(11)
......
end if

'e.Form.ResumeRedraw()
'tr1.ResumeRedraw()
'tr2.ResumeRedraw()

上面的代码如果用的stopRedraw后,点击节点会卡住半天,如果不用则没有问题,但会有屏闪问题
如果用stopRedraw后,取消中间的Return又没有问题,但就是导致If e.Node.Checked = false Then 里面的代码还要执行

是什么原因?

谢谢!



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/7 20:07:00 [只看该作者]

你return之前,一定要写ResumeRedraw


 回到顶部
帅哥,在线噢!
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/10/7 21:23:00 [只看该作者]

原来是这个原因啊,那不是每个一Return前用Resumeredraw,之后又要用Stopredraw,如果return有几处,不是很繁琐?
谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/7 21:27:00 [只看该作者]

Stopredraw 和 Resumeredraw 要配套使用,stop以后一定要resume,不然就有问题。

 

不然,你不要用return,你用if else做判断,使代码最终执行 Resumeredraw 呗。


 回到顶部