Grazie eziogsv.
Toglierò dal mio codice la stringa Application.DoEvents e vedrò cosa accade.
Per il resto, no, l'evento "MouseLeave" non da seguito ad elaborazioni lunghe perché gli eventi vengono elaborati solo dopo aver fatto click sull'icona. Gli eventi MouseEnter e MouseLeave servono solo a cambiare il colore dell'icona; di fatto sostituiscono l'icona corrente con una diversa, come da codice. Che il muose funzioni correttamente è provato perché ho installato la routine su un diverso PC ed ho ottenuto lo stesso risultato.
Ho notato però che se muovo lentamente il mouse, l'evento si verifica: è solo quando lo muovo velocemente che non esegue il comando, tipicamente quando ci passo sopra per caso.
Ancora grazie Ezio, non è la prima volta che mi aiuti.
Ciao