我很好奇是否有一种方法可以拦截足够长的控制事件处理程序以运行一小段代码,然后继续处理该处理程序。
例如,假设我的表单上有一个 TreeView,当我单击展开一个节点时,我想在它实际展开之前为该节点运行一些代码,可能是某种子节点的按需加载或类似的东西.
现在我可以在树视图 NodeMouseClick 事件中单击它时运行代码,但我希望节点在该代码完成之前不会展开。
想法?
我很好奇是否有一种方法可以拦截足够长的控制事件处理程序以运行一小段代码,然后继续处理该处理程序。
例如,假设我的表单上有一个 TreeView,当我单击展开一个节点时,我想在它实际展开之前为该节点运行一些代码,可能是某种子节点的按需加载或类似的东西.
现在我可以在树视图 NodeMouseClick 事件中单击它时运行代码,但我希望节点在该代码完成之前不会展开。
想法?
TreeView.BeforeExpand让您这样做。
此外,事件处理程序是阻塞的——只有一个事件处理程序会同时运行,它们也会阻塞 GUI(如果您没有明确地采取任何措施来阻止它)。