注册 登录
编程论坛 VFP论坛

关于 MSTree 重新加载时,窗口总是闪,能控制码

easyppt 发布于 2023-06-10 16:38, 875 次点击
表单按钮 刷新 的click 动作是 重新加载 msTree的内容,每次点击重新加载时,这个 msTree控件 都会闪烁一下,能避免码
thisform.lockscreen = .T. 不起作用

9 回复
#2
吹水佬2023-06-10 20:50
试试用user32.dll的LockWindowUpdate()
锁定 LockWindowUpdate(msTree.hWnd) 或  LockWindowUpdate(thisform.hWnd)
解锁 LockWindowUpdate(0)
#3
csyx2023-06-10 20:58
以下是引用吹水佬在2023-6-10 20:50:48的发言:

试试用user32.dll的LockWindowUpdate()
锁定 LockWindowUpdate(msTree.hWnd) 或  LockWindowUpdate(thisform.hWnd)
解锁 LockWindowUpdate(0)

LockWindowUpdate 没作用,我三年前就试过了,WM_SETREDRAW、RedrawWindow 也都不起作用
#4
吹水佬2023-06-10 21:17
以下是引用easyppt在2023-6-10 16:38:10的发言:

表单按钮 刷新 的click 动作是 重新加载 msTree的内容,每次点击重新加载时,这个 msTree控件 都会闪烁一下,能避免码
thisform.lockscreen = .T. 不起作用

给个示例代码测试
#5
easyppt2023-06-10 22:27
谢谢吹版!!

csyx   我测试起作用的
#6
csyx2023-06-11 07:28
以下是引用easyppt在2023-6-10 22:27:32的发言:

谢谢吹版!!

csyx   我测试起作用的

恭喜!咱俩的需求或应用场景可能不同
#7
easyppt2023-06-11 08:55
我的很简单,就:
.nodes.Clear
.nodes.Add
.nodes.Selected
等操作。
针对 node操作之前用 吹的 API,就不闪了。

另外,发现,thisform.refresh,竟然也会有些小闪
#8
shizi02023-06-11 12:37
tree重载,我好像一般就用lookscreen,或者直接visible, 没遇到过闪烁。装载我一般放在Tree.Refresh中。
#9
gmlcxh2023-07-20 19:28
只有本站会员才能查看附件,请 登录
请问大家,做成安装文件会出现这个问题,是不是这个控件的哪个文件没包括在里面吗?
#10
shizi02023-07-22 17:49
应该是数据问题,很可能是子node找不到父节点
1