首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >阻止TreeView在VB6中触发事件?

阻止TreeView在VB6中触发事件?
EN

Stack Overflow用户
提问于 2019-06-05 01:54:46
回答 2查看 0关注 0票数 0

在一些VB6代码中,我有一个TreeView的Collapse事件的处理程序:

代码语言:javascript
复制
Private Sub MyTree_Collapse(ByVal Node as MSComCtlLib.Node)

无论是用户还是以编程方式,只要树中的节点被折叠,就会调用此方法。事实证明,通过一些环形交叉执行,可能会发生这样的处理程序将最终告诉节点崩溃,导致无限递归。

我可以想到多种方法来修饰这只猫,但对我来说最简单的是告诉TreeView不要在一段时间内引发事件。但是,我找不到一个简单的电话让我这样做。有没有人成功地做过这个,或者我是否需要以其他方式跟踪状态,以便在递归事件发生时我能够做出适当的回应?

EN

回答 2

Stack Overflow用户

发布于 2019-06-05 10:28:26

@Phil - 我得出了同样的结论。我MyTree_Collapse现在的实现看起来像这样(其中m_bHandlingCallback是成员变量):

代码语言:javascript
复制
Private Sub MyTree_Collapse(ByVal Node as MSComCtlLib.Node)
    If m_bHandlingCallback Then Exit Sub

    m_bHandlingCallback = True
    DoSomeStuff
    m_bHandlingCallback = False
End Sub
票数 0
EN

Stack Overflow用户

发布于 2019-06-05 11:34:38

我认为像VB中的许多事件一样,它无法关闭。

只需按照你的建议设置一个布尔标志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档