在VBA中的用户窗体上通过Repaint使用DoEvents有什么好处?
是因为性能,还是为了最大程度地减少屏幕闪烁之类的烦扰,还是由于您需要更新的不仅仅是表格?

从VBA的角度寻找一些区别。

最佳答案

通常,VB6和VBA使用DoEvents告诉处理器继续处理消息队列中的消息。当在处理器中执行密集处理操作时使用它,因此程序的UI仍然响应所有其他事件。

示例:您正在执行密集搜索算法,如果未添加DoEvents,则程序可能会挂起,直到完成搜索为止。另一方面,如果将DoEvents添加到(假设在搜索循环中)程序不会挂断,并且仍然可以处理所有程序事件,例如(取消)取消搜索。

编辑:我认为它是因为DoEvents比Repaint更全面,因为它处理所有事件类型,不仅处理UI的闪烁/挂断。

10-06 03:08