Laden...

Wenn Maus über Rechteck Tooltip anzeigen

Erstellt von Aratar vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.396 Views
A
Aratar Themenstarter:in
118 Beiträge seit 2009
vor 13 Jahren
Wenn Maus über Rechteck Tooltip anzeigen

Hallo,

Ich habe folgendes Problem. Ich habe mehrere Rechtecke in meiner Anwendung. Nun sollte, wenn man mit der Maus auf einem Rechteck, ist ein ToolTip angezeigt werden. Es sollte sich ausserdem immer an der Mouse Position sein.
Wenn ich das ganze im MouseMove-Event realisiere flackert es, darum wollte ich fragen, ob es evt. eine andere Möglichkeit gibt?

PS.
Die Rechtecke habe ich alle in einer Liste und teste mit rectlist.Contains(MousePos) ob die Maus über einem Rechteck ist.

Gruss Aratar

5.742 Beiträge seit 2007
vor 13 Jahren

Wenn ich das ganze im MouseMove-Event realisiere flackert es, darum wollte ich fragen, ob es evt. eine andere Möglichkeit gibt?

Was flackert? Der Tooltip?
Zeige mal den Code her - du solltest natürlich prüfen, ob der Tooltip schon sichtbar ist und ihn nicht einfach immer wieder neu anzeigen, wenn der User die Maus ein Stück bewegt.

Ansonsten wäre aber evtl auch MouseHover einen Blick wert - das ist IMHO für ToolTips sinnvoller.

A
Aratar Themenstarter:in
118 Beiträge seit 2009
vor 13 Jahren

Ja, der Tooltip flackert.

Eigentlich wollte ich den ToolTip immer wieder neu zeichnen, da er immer an der Mausposition sein sollte. Hab mich jetzt aber doch umentschieden, sodass er einfach immer am gleichen Ort ist.

Wenn doch noch jemand eine Möglichkeit kennt, das Ganze so zu realisieren, dass sich der ToolTip immer an der Mausposition befindet wäre ich dankbar, ansonsten gebe ich mich einfach mit der "unbewegten" Variante zufrieden.

Gruss Aratar

5.742 Beiträge seit 2007
vor 13 Jahren

Wenn doch noch jemand eine Möglichkeit kennt, das Ganze so zu realisieren, dass sich der ToolTip immer an der Mausposition befindet wäre ich dankbar

Es gäbe sicherlich eine Möglichkeit über die WinAPI, sodass man den Tooltip selbst verschiebt.

Deutliche einfacher ist aber, einfach keinen Tooltip, sondern eine Form zu verwenden. Dann muss man allerdings ein paar Sachen selbst implementieren, kann aber schreiben:


private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    this._tooltip.Location = PointToScreen(e.Location);
}