Alex,
The best way to find out this information, under all your scenarios is to use the Event Logger from the debugger. You can easily compare event sequences by copying/pasting the lines out of the output window and looking at them side by side. You can insert notes about what you were doing by using a debugout "I clicked into the listbox while focus was on the button xyz"
>In which order do the following events of a listbox ocurr if user changes row via a mouse click? Assume focus is initially on another control. Do any other events fire at that time?