Opis problemu:
Zdarza się, że chcielibyśmy, aby jakiś tekst pojawiał się tylko przy najechaniu myszką na dany element. Standardowy żółty TipText pojawia się z opóźnieniem i nie zawsze nam odpowiada. Dobrym rozwiązaniem jest wyświetlanie własnych tekstów w określonym miejscu na formatce, np. w jakiejś etykiecie. Pojawia się jednak problem. O ile moment najechania kursora myszki na element jest łatwy do wykrycia korzystając ze zdarzenia MouseMove, to przesunięcie myszki poza dany element nie generuje żadnego zdarzenia.
Jak zatem wykryć moment wyjścia kursora myszki poza obszar elementu?
Rozwiązanie:
Najprostsze rozwiązanie nasuwa się samo. Trzeba oprogramować zdarzenie MouseMove dla tej sekcji formularza, w której znajduje się nasz element i gasić nasz tekst, gdy tylko myszka przesunie na ten obszar. Rozwiązanie jest proste, jednak na tym jego zalety się kończą. Szybkie przesunięcie myszki poza obszar formularza nie spowoduje ukrycia komunikatu, a obciążenie interfejsu - z powodu obarczenia każdego ruchu myszki procedurą MouseMove - jest znaczne. Ten sposób pomijamy.
Przykład MouseOut.zip zawiera dwie inne metody, które pozwalają wykryć moment opuszczenia elementu przez wskaźnik myszki.
W obu przypadkach wykorzystuje się funkcję API do odczytu współrzędnych wskaźnika myszki na ekranie.
Krzysztof Pozorek