2

在 VBA 中的用户窗体上使用 DoEvents 而不是重绘有什么好处?是因为性能,为了尽量减少屏幕闪烁等事情的烦恼,还是因为您需要更新的不仅仅是表单?

从 VBA 的角度寻找一些关于差异的澄清。

4

1 回答 1

6

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

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

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

于 2010-11-28T22:16:42.790 回答