Laden...

MouseHoverEreignis aber nur für einen Teil des Panels

Erstellt von MBoerner vor 6 Jahren Letzter Beitrag vor 6 Jahren 917 Views
M
MBoerner Themenstarter:in
22 Beiträge seit 2016
vor 6 Jahren
MouseHoverEreignis aber nur für einen Teil des Panels

Guten Tag!
ich schreibe mir eigene Tooltips wegen der Formatierung. Das funktioniert jetzt ganz gut.
Der Benutzer zeigt über diverse gemalte Rechtecke in EINEM Panel und dann erscheint der toolTip.
Es wird aber bei dem MouseMove Ereignis geguckt, ob der Bereich sich geändert hat (der Benutzer über einen anderen Rechteck steht). Es passiert ab un zu, dass während der Bewegung "Zwischen"-Tooltips angezegt werden udn dann verschwinden, was unruhig aussieht.

Eigentlich wäre das Ereignis MouseHover am Besten, weil es erst feuert, wenn die Maus eine Weile still ist.
Aber soweit ich weiß, ist das MouveHover-Ereignis nur für ein Control, In dem Fall mein großes Panel mit vielen Rechtecken.
Das Ereignis feuert nur, wenn ich das Panel verlassen würde und dann wieder betreten würde, aber ich bewegen den Cursor nur innerhalb des Panels. Deswegen feuert es nur einmal und dann nicht wieder.

Meine Frage: Gibt es einen Möglichkeit einem Teilbereich eines Controls ein Hoverereignis zuzuordnen? Also jedem einzelnen Rechteck?

Ich habe alles Möglich probiert:
Delay nach einem Move Ereignis aber sobald die Maus still ist, wird das MouseMove Event nicht mehr ausgeführt.
MouseMove mit prüfen, ob die Koordinaten ähnlich sind udn nicht mehr soweit auseinander,
Das alles ist nicht so optimal.

Oder gibt es ein "Maus-ist-Still" Ereignis 😃

Vielen Dank im Voraus

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

mal naiv gedacht - wie wäre, wenn du im MouseMove:
a) einen Timer startest bzw. zurücksetzt und neu startest
b) die Koordinaten in einer Variablen zwischenspeicherst

Wenn der Timer dann abgelaufen ist - dann wird halt eben erst der Tooltip angezeigt.

LG