Diciamo che il problema che hai esposto è abbastanza "tipico": quando fai elaborazioni che richiedono diverse risorse, il sistema operativo dedica a queste la priorità, ed i vari refresh video passano in cavalleria, venendo accodati negli eventi di Windows.
Invece, DoEvents serve a dire "arrivati a questo punto del programma, guarda se ci sono degli eventi in attesa ed evadili".
Felice di esserti stato di aiuto.![]()