I use the DoEvents when I want to show a progressbar (thats on a seperate form) for any long actions I am doing. If I do not add the DoEvents command after each reference to the progressbar, the progressbar will not appear to be doing anything.

Example:

frmProgress.pgbProgress.Max = (Value)
frmProgress.Show
DoEvents
(I have to add the DoEvents to make the frmProgress to appear)

Long data manipulation event occuring ................
frmProgress.pgbActionProgress.Value = (value)
DoEvents
(I have to add the DoEvents so the user can see the pgbProgress bar advancing)

This is just a little example of the DoEvents keyword.
Hope it helps you understand it a little better.